|
2/9/2005
Eric Low
Starting
service /kdm/opt/kde3/bin/kdm: error while loading shared libraries:
libX11.so.6. Cannot open shared object file: No such file or directory.
Most likely due to a wrong or missing path in your /etc/ld.so.conf
file. libX11.so.6 is most likely in the /usr/X11R6/lib/
directory, so try putting the following line in your /etc/ld.so.conf
file:
Similar "Error while loading shared libraries" errors when
loading various X programs (or X itself, which is when I got the error)
can be caused by this same problem.
2/14/2005
Suse
9.2, 64-bit version, runs painfully slow on the Nvidia Nforce4 chipset.
I've Googled this extensively, and apparently there is a bug in the
kernel that can be fixed with a patch and then recompiling. Of course,
with the system running that slow, this could easily takes days! I noticed
that the kernel seemed to run at full speed when I booted into failsafe
mode, so I started turning on boot options one by one, and it turns
out that the following boot option is a quick and dirty fix to have
you up and running like normal: acpi=off.
Either type it in as a bootloader option at the kernel selection screen,
or add it to the normal boot option in /boot/grub/menu.lst. Suse
9.2 comes with the 2.6.8 kernel, I believe, and as of this writing,
2.6.10 is the latest stable. I am trying a recompile with the 2.6.11-rc4
version, completely unpatched, so hopefully it will now be fixed!
Note
that when you install SuSE x64 for the first time on a
computer with the NVidia NForce4 chipset, SELECT
"INSTALLATION - ACPI Disabled" unless you are patient
as hell. Granted, this still didn't work for me... still slow
as ever. Hmmmph.
3/2/2005
To
easily translate a linux Man page to HTML, try
a handle little utility called PolyglotMan, available
here. An older version is also available at the bottom of this page.
To convert a man page, you basically type a command similar to the following:
|
rman -f html /usr/local/man/man5/racoon-tool.conf.5 >racoon-tool.conf.html
rman -f html /usr/local/man/man8/racoon-tool.8 >racoon-tool.html
|
Sometimes, however, rman doesn't seem to format pages correctly.
This appears to be caused by BSD man pages, which use
different macros than normal Linux man pages. For instance, look at
the following error:
# rman -f html /usr/local/man/man8/racoon.8 >racoon.html
macro "" not recognized -- ignoring
macro "Dd" not recognized -- ignoring
macro "Dt" not recognized -- ignoring
macro "Os" not recognized -- ignoring
macro "Nm" not recognized -- ignoring
macro "Nd" not recognized -- ignoring
macro "Bk" not recognized -- ignoring
macro "Op" not recognized -- ignoring
macro "Ek" not recognized -- ignoring
macro "Pq" not recognized -- ignoring
macro "Xr" not recognized -- ignoring
macro "Bl" not recognized -- ignoring
macro "It" not recognized -- ignoring
macro "Ar" not recognized -- ignoring
macro "Fl" not recognized -- ignoring
macro "El" not recognized -- ignoring
macro "Pp" not recognized -- ignoring
macro "Pa" not recognized -- ignoring
macro "Em" not recognized -- ignoring
macro "Dq" not recognized -- ignoring
macro "Li" not recognized -- ignoring |
If you need to format BSD man pages (this does NOT necessarily mean
that you are on a BSD operating system! These are found on Linux as
well!), try filtering the man page through groff before rman,
such as with the following command:
| groff -e -mandoc -Tascii /usr/local/man/man5/racoon.conf.5
| rman -f html >racoon.conf.html |
...The output probably won't be perfect, but at least it won't be
missing portions like it would without groff!
----------------------
Occasionally, I use a program called roffit
instead. To install roffit, you have to untar and copy
the files manually since there is no Makefile:
|
tar -xvzf roffit-0.6.tar.gz
cd roffit-0.6
cp roffit.1 /usr/local/man/man1
cp roffit /usr/bin
|
Then, to make an HTML page out of a MAN page, the command is similar
to the following:
| roffit < /usr/local/man/man5/racoon.conf.5 > ./racoon.conf.html |
3/17/2005
If
you accidentally delete a hard drive's partition table, or it becomes
corrupt, try recovering it with a linux utility
called gpart.
3/17/2005
If
a physical hard drive does not show up in linux, meaning the /dev/sdb
or whatever entry does not exist,
try recreating it with mknod. I somehow deleted my /dev/sdb
device, and even though in the bootup (which can be read by typing dmesg)
the SATA drive was found and associated with /dev/sdb, when I
typed ls /dev/sdb nothing showed up. I recreated it by
typing the following:
| mknod -m 660 /dev/sdb b 8 16 |
-m 660 simply specifies the rights that are assigned to this
device - leaving this option out and then typing chmod 660 /dev/sdb
would have accomplished the same thing.
b means that it is a block device - meaning it goes through the
buffer cache - any hard drive will need this type.
Major 8 means that it is a SCSI disk.. MAJOR 8 and MINOR
16 are for the second SCSI disk, /dev/sdb.
3/17/2005
In
VMWARE, depending on your networking configuration, up to three virtual
network interfaces may appear.
These include vmnet0, vmnet1, and vmnet8. Vmnet0
is the bridged interface - it is bridged with the host machine's network
card; Vmnet1 is for host-only networking, which means that it's
a private subnet so that you can map to directories on the host machine;
Vmnet8 is a NAT interface, which means that the guest operating system
thinks it's on a private subnet, while the host operating system is
translating all packets to use the same IP address as the host machine's
interface when it sends/receives anything to/from the outside world.
3/18/2005
Cannot
determine dependencies of module X. Is modules.dep up to date?
This error occurs when running mkinitrd. Run depmod -ae -v
2.6.11.5 except substitute your kernel version.
3/22/2005
`GLIBCPP_3.2'
not found
error when running firefox, firefox-installer, or a similar
program. The full error is as follows:
./firefox-installer-bin: /usr/lib/libstdc++.so.5: version `GLIBCPP_3.2'
not found (required by ./firefox-installer-bin)
./firefox-installer-bin: /usr/lib/libstdc++.so.5: version `CXXABI_1.2'
not found (required by ./firefox-installer-bin) |
This occurs when you have a version of libstdc++ installed
that is VERSION 3.4 OR LATER. Luckily, you can install
version 3.3 by passing the --force command to rpm,
without affecting your 3.4 installation whatsoever. This will stick
a copy of /usr/lib/libstdc++.so.5 in there and still keep /usr/lib/libstdc++.so.6.
4/3/2005
SWITCH
YOUR PREFERRED X DESKTOP FOR AN INDIVIDUAL USER'S ACCOUNT IN LINUX.
Log in with the account that you want to change and type switchdesk
xfce. In my case, xfce was my preferred desktop. Feel free
to type switchdesk kde or switchdesk gnome
instead. I know that this works under redhat/fedora with gdm as
the greeter, but I can't guarantee that it works for other installations.
But hey, give it a shot! :)
4/5/2005
Problems
starting X when using the nvidia
kernel module.
Log in When you try to start X, you get an error similar to the following:
| (EE) NVIDIA(0):
Failed to initialize the NVIDIA kernel module! |
Make sure that /dev/nvidia* have rights 660, and are owned by the group
video. Try running the following:
chmod 660 /dev/nvidia*
chown root:video /dev/nvidia* |
Hopefully that will clear it all up!
4/21/2005
Resizing
EXT3 partitions.
When you try to resize EXT3 partitions with any of the commonly used
partitioning software, such as Paragon Hard Drive Manager or
Partition Magic, the action always fails with some sort of Insufficient
Memory error. In fact, I have never, ever, ever been able to
successfully resize (or, to be more specific, shrink)
an EXT3 partition! Nonetheless, give this a try: Convert it to an EXT2
partition first, by removing the journaling system, with
a command similar to the following:
| tune2fs -O ^has_journal /dev/sda2 |
It only takes a minute to remove the journal. Then, try resizing it.
After you are finished, turn the journal back on to convert it back
to EXT3:
| tune2fs -O has_journal /dev/sda2 |
Good fucking luck! :P
5/5/2005
Backspace
key doesn't work in Vim (or Vi) in SuSE.
Vim actually uses terminfo, which has different keymappings
than bash uses (which I believe are defined in /etc/initrc).
To fix this, edit /etc/vimrc and simply add the following
line:
Voila! To read about this problem, simply type :help fixdel
in Vim. Keep in mind, however, that it doesn't list this solution as
a fix, even though it seemed to be the only one that worked for me!
5/11/2005
Turn
off IPV6.
This is the quick and easy solution. Granted, I'm completely for IPV6,
but the fact is, it'll be another 10 years before anything is actually
implemented. Maybe I have no right to say that statement - maybe it's
already implemented transparently on the backbones! Nonetheless, turning
it off will speed things up a bit on your computer.
To do so, simply add/change
the following line to your /etc/modprobe.conf file:
Next time you reboot, your network interfaces will no longer be IPV6
aware.
8/17/2005
ERROR:
unexpected CPU exception 0x06 err=0x00000000 cr2=00000000 while in vm86
(DOS)
Program=sigsegv.c, Line=159
when running DOSEmu.
I got this error with DOSEmu versions 1.3.1 as well as 1.3.2, attemping
to run under both kernel 2.6.12.5 and 2.6.11.1. At first, it appeared
that this was being caused by address space randomization.
I tried shutting this off by typing the following:
| echo 0 >/proc/sys/kernel/randomize_va_space |
This did not seem to actually
shut it off, so I added the following line to /etc/sysctl.conf:
| kernel.randomize_va_space=0 |
That shut off the randomization,
but I still got the exact same error in DOSEmu! I then added the following
line to /etc/sysctl.conf in an attempt to shut off exec-shield,
thinking that might be the problem:
Since there doesn't seem
to be a /proc/sys/kernel/exec-shield file, however, I'm not sure
if this actually did anything! It used to though, in the early kernel
2.6 days! Hhmmm... Running dosemu -d, which disables DPMI,
seemed to bypass this error, but gave me a different error and seemed
to open a whole new can of worms.
As
it turned out, SELinux is what broke DOSEmu.
On a hunch, I turned it off in the kernel configuration, under Security
options\Enable different security models\NSA SELinux Support (in
actuality, I disabled "Enable different security models" and
ran completely old school). As soon as I recompiled the kernel and rebooted,
DosEmu worked! :)
8/19/2005
Define
static MAC addresses in DOSEmu.
Sometimes, you want a DOSEmu session to have a unique and unchanging
(in-between sessions) MAC address, independent of the
MAC address of your network interface, which DOSEmu would normally inherit
if $_vnet = "direct" and $_netdev = "tap0"
in the dosemu.conf file. On the other hand, if you create
a bridge and a tap interface, then set $_vnet = "tap"
and $_netdev = "tap0", it seems to generate a random
MAC address every time dosemu is run.
If you watch the MAC addresses
closely, you'll notice that only one byte of the 6-byte number
actually changes between sessions. This is the third byte in the address
(just to confuse you, this is actually the fourth most significant byte).
The fourth byte is always static, 90; the other four bytes
appear to change depending on some particulars of a given computer,
although I haven't really tried to figure out what dictates their value.
These do, however, seem to always stay static on any given computer.
First, to make the entire
address static, edit src/dosext/net/net/libpacket.c and
change the following line:
| DosnetID = DOSNET_TYPE_BASE
+ (rand() & 0xff); |
This line normally picks
a random hex digit from 0-FF each time DOSEmu is run. Make it static
by changing it similar to the following:
| DosnetID = DOSNET_TYPE_BASE
+ (0x44); |
If you want to change the
fourth byte, which is normally 90, edit src/include/dosnet.h
and change the following line:
| #define DOSNET_TYPE_BASE
0x9000 |
10/11/2005
Setting
the system clock via NTP in Linux.
This is quick and dirty! First, make sure your timezone is set. There
is a file, /etc/localtime, that needs to be a symbolic link to
a file in /usr/share/zoneinfo/, according to your timezone. For
me, the file was US/Eastern, and the /etc/localtime file already existed
(but was incorrect). I typed the following command to set my timezone
correctly:
rm /etc/localtime
ln -sv /usr/share/zoneinfo/US/Eastern /etc/localtime |
Set the system clock by typing
ntpdate servername. A valid list of servers, at least as of this
date, is as follows:
| server adress |
Location |
| ntp.ipv6.viagenie.qc.ca |
IPV6 ONLY |
| clock.via.net |
|
| server fartein.ifi.uio.no |
Norway |
| server ntp.uio.no |
Norway |
| server ntp.eunet.no |
Norway |
| ntp.demon.co.uk |
UK |
| ntp.nasa.gov |
USA |
| bigben.cac.washington.edu |
USA |
| time-b.nist.gov |
USA |
| montpelier.ilan.caltech.edu |
USA |
| nist1.aol-ca.truetime.com |
USA |
| nist1.datum.com |
USA |
| time-a.timefreq.bldrdoc.gov |
USA |
| time-b.timefreq.bldrdoc.gov |
USA |
| time-c.timefreq.bldrdoc.gov |
USA |
| time.nist.gov |
USA |
| utcnist.colorado.edu |
USA |
| tick.usno.navy.mil |
USA |
| tock.usno.navy.mil |
USA |
| mizbeaver.udel.edu |
USA |
You probably want your hardware
clock synced to UTC (Greenwich Mean), so after running ntpdate, set
your hardware clock with the following command: hwclock --utc --systohc.
You can then look at the hardware clock time by typing hwclock --show
--localtime (the --localtime option makes it so it does not back-convert
the hardware time to local time when displaying the clock). The advantage
of setting your hardware clock, of course, is that your time will already
be fairly synchronized upon bootup. To reverse the process, and set
your system (software) clock from the hardware clock, you would type
hwclock --hctosys. I made a cronjob to set the time using ntpdate
every hour, and voila!
You could always
use ntpd and run it as a daemon, of course, but the overhead
seems pointless. If you were to do so, however, you would need to edit
/etc/ntp.conf, and add the following lines:
server ntp.nasa.gov
broadcastdelay .008
authenticate no |
You can, of course, add as many "server servername" lines as
you want. You would also want to comment out the following lines:
#server 127.127.1.0
# local clock (LCL)
#fudge 127.127.1.0 stratum 10 # LCL is unsynchronized |
The fudge line is
only used if you want to run an ntp server, and I commented out that
server 127.127.1.0 line because I didn't want my computer using
itself as the source to set the clock by. There ya go!
11/30/2005
Firefox
(any version) randomly crashes on a 64-bit machine.
This took me a while to nail down - it appears to be caused by Macromedia's
flash plugin being incompatible with the x86_64 architecture. Firefox
will even download and install it automatically for you, succeeding,
but then proceeding to crash. It most likely crashes with a segmentation
fault of some sort. Delete all instances of flashplayer.xpt
and libflashplayer.so from your machine (it could be scattered
in different plugins folders around your hard drive, depending
on how your profiles are set up and how you installed it). Macromedia
doesn't seem to be in any hurry to release an x86_64 version!
I decided to try GplFlash.
I tried installing the 64-bit rpm and copying libnpflash.so to
my plugins directory, but that crashed Firefox even before any flash
was loaded! Looking at the GplFlash homepage, it appeared that to play
any newer flash images, you would need GplFlash2 anyhow, which is currently
only available via CVS. I created a directory on my hard drive and downloaded
the CVS
version by typing the following commands:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gplflash
login
<hit enter when it asks for a password>
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/gplflash
co -P gplflash2 |
I then installed it by running the following commands:
cd gplflash2
./autogen.sh --with-plugin-dir=/programs/firefox15/plugins |
That failed because it could not find ffmpeg. It was installed,
and once I checked the config.log, I found that it was looking for a
file called libavcodec.pc. I added its directory to my PKG_CONFIG_PATH
environment variable with the following command: export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/lib/pkgconfig
Ok, after digging further into the logs, it appeared that my libavcodec.pc
was incompatible with some other files it needed. I did have a weird
hacked version installed (which I had done to get a decent version of
K3B to run, since the version that is distributed with SuSE is old and
therefore missing many options), so that's probably it. I might come
back to this one, but for know, I think I'll live without Flash! :(
There is another alternative, Swfdec,
which I have not tried.
12/5/2005
YaST
Online Update (YOU) in SuSE 10.0 thinks you are running Suse 9.3.
This happened to me after an upgrade from 9.3 to 10.0 with the downloadable
DVD. However, while I was googling a solution, it appeared that some
people got this with a fresh 10.0 installation, sans upgrade. That sounds
fishy to me, but that's what they said. YOU stores these settings in
the /var/adm/YaST/ProdDB/ directory, most likely in a file called
prod_00000001 (mine was in a file called prod_00000002, which
was the only file in that directory). I edited that file and changed
the following lines:
|
+Media:
MEDIA1. SUSE LINUX PROFESSIONAL 10.0 DVD1
MEDIA2. SUSE LINUX PROFESSIONAL 10.0 Source-DVD
+Product:
SUSE LINUX-10.0-
SuSE-Linux-DVD-10.0-0
-Arch:
=Requires:suse-release-10.0
-Linguas:
=Label:SUSE LINUX Version 10.0
+LabelMap:
de SUSE LINUX in der Version 10.0
-LabelMap:
=RelnotesUrl: http://www.suse.com/relnotes/i386/SUSE-LINUX/10.0/release-notes.rpm
=YouPath: i386/update/10.0
|
So basically, I just changed every occurence of 9.3 in that
file to 10.0. I ran YOU again, and suddenly it had the right
version! Let the updates begin!
12/5/2005
File
permissions on certain system files seem to revert back after you set
them manually.
In our case, we set the "set user ID bit" on ncpmount
(chmod +s /usr/bin/ncpmount), but every so often, we found that the
bit had become unset. As it turned out, SuSEconfig was changing those
permissions every time it was run (which always happens when you do
an Online Update through YaST)! There are a group of files, /etc/permissions*
that SuSEconfig uses to set permissions. We searched through these,
and there was an entry in /etc/permissions.easy that read like
the following:
| /usr/bin/ncpmount root:trusted 750 |
I changed that line to read as follows:
| /usr/bin/ncpmount root:trusted 4750 |
Voila! No more wrong permissions.
12/7/2005
Getting
CP437 (wide characters) through SCREEN.
GNU Screen does not currently support cp437. I have mine compiled with
wide character support, but it doesn't noticably change anything. Filterm,
part of the konwert package, is a godsend. It translates characters
on the fly, and doing a double translation, I was at least able to get
extended characters through screen. I could only get version 1.8-9 to
compile on my computer (RC4), which is available on the Debian site
(this is also after installing a package for Debian called libstdc++5).
Any version older than that is just too old to work on a modern system.
Here is how I ran filterm/screen/filterm/dosemu to get those extended
characters through:
Putty is in CP437.
filterm cp437-UTF8 UTF8-cp437 screen -T rxvt-color
filterm UTF8-cp437 cp437-UTF8 dosemu
Unfortunately, screen still f*cks things up, subtracting items and
wrapping others on the screen to make things look bad. It does it even
without filterm running (such as setting the external charset to cp1251
in dosemu and running it under screen), so don't blame it on the translation!
Interestingly enough, though, stuff looks normal (aside from having
no extended characters) on PuTTY running under Linux! It looks pretty
good using the ssh program under Linux as well. Perhaps it has to do
with the font, which is -monotype-courier new-bold-r-normal-*-*-120-*-*-m-*-microsoft-cp1252
on my Linux machine? In fact, I tried many different fonts on both the
Linux and the Windows version of PuTTY, and nothing changed - it always
looked right under Linux (sans extended characters, of course) but never
right under Windows.
12/7/2005
Force
an fsck on the next reboot (Fedora Core 4).
This is easy. touch /forcefsck.
12/15/2005
Disable
the screensaver on Linux (in KDE as well as powersaving).
Sometimes, right-clicking on the desktop and disabling the screensaver
doesn't always work! In SuSE, modify /etc/sysconfig/powersave/scheme_performance
and set the following line:
POWERSAVE_DISABLE_SCREENSAVER
= "Yes"
In addition, a program called
xset can set user preferences for X. You can read about it here.
Type xset s off to disable X server screen blanking. Finally,
to disable blanking for the text consoles, type setterm -blank
0
I also had to fix this
on a Ubuntu machine. The monitor would blank (powersave) after 10 minutes
no matter what screen saver/powersave settings I had set.
To fix this, once again I typed xset s off. To make it
permanent (between boots), however, I created a ~/.xsession file (this
did not previously exist in the user's home directory. However, if it
does exist, it will run automatically when the user logs in). The script
simply looked like this:
|
#!/bin/sh
# Prevent screen blanking using xset.
xset s off
|
1/29/2006
Beagle
(or mono) uses up half your CPU.
Beagle is a program that indexes your entire system to provide fast
searches. I personally do not care for this feature - I'd rather wait!
Nonetheless, it is installed by default with SuSE, and many programs
use it. However, you'll probably notice periodic slowdowns in your system,
only to look in your list of processes to find tons of mono threads
running, each using 2-5% of your CPU apiece! At first I simply uninstalled
Beagle on my system, but then many programs complained (including Nautilus,
which means I suddenly had no desktop! <grin>).
Beagles uses the .beagle
subdirectory off of a user's home directory. If you simply want to disable
beagle... (to be continued)
3/8/2006
Windows
2000 only recognizes the first 128GB of an ATA hard drive.
ATA interface hard drives use 48-bit LBA to overcome the 137GB physical
boundary when using 28-bit LBA. Support for this became available in
W2k Service Pack 3, however, you must also add and/or
enable the following registry key to utilize it and see those drives:
|
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\atapi\Parameters\EnableBigLBA
Set the value of this key to 1. The key is type REG_DWORD.
|
3/12/2006
Setting
the timeout for CGI scripts in IIS.
It is not necessarily easy to find where to do this, since it is somewhat
hidden, no matter which version of IIS you have. The default is always
set to 300 seconds, which sometimes is not nearly enough! From IIS 4
or 5, it can easily be done from the main web server properties, and
affects every virtual directory on the site. However, this option disappears
in IIS 6.0.
In IIS 6.0, you must edit
the Metabase to set this value. Windows Server 2003 comes with a program
called Metabase Explorer (found under Programs -> IIS Resources
-> Metabase Explorer), but if you want to use this method on an earlier
version of Windows Server/IIS (yes, it supposedly works from these versions
as well), you must download
the free MetaEdit utility.
Before you edit the Metabase,
turn on "Metabase edit-while-running." More information on
this procedure can be found here.
You must also enable the "Metabase History Feature" and set
it to a value of 10 or greater (by default, it is set to 1). To do all
of this, type iisreset /stop, then edit the systemroot\system32\inetsrv\MetaBase.xml
file with a text editor. Search for IIsComputer, and in that
section, edit or add the following lines:
<IIsComputer Location ="/LM"
EnableEditWhileRunning="1"
EnableHistory="1"
MaxBandwidth="4294967295"
MaxHistoryFiles="10"> |
Then, start IIS back up by
typing iisreset /start. You may also enable metabase edit-while-running
from IIS. Open IIS Manager, right click on Local Computer and
select Properties. Check the "Enable Direct Metabase Edit"
checkbox. This does not affect the history feature though.
Now, set the CGITimeout property.
Open IIS Metabase Explorer and browse to Local Computer/LM/W3SVC.
The CGITimeout value should be there and set to 300. Edit it to whatever
you want, and because it is inheritable, it will affect your entire
site. More information on this can be found here.
If you want to set the timeout
on specific directories or files, browse to that directory in Metabase
Explorer. The virtual directory that I wanted to modify was Local
Computer/LM/W3SVC/1/ROOT/blah. The CGITimeout record did not already
exist, so I had to add it. I right-clicked on the directory and selected
New -> DWORD Record. In the Record Name or Identifier box,
I typed CGITimeout. It gave me a little warning about it already
being inherited from above, which I ignored. I clicked OK and the record
was created. I then double clicked it and changed the value to 3600,
which gave me a full hour before timeout. Voila!
3/28/2006
HP
OfficeJet 6200 color printer network drivers.
HP tries to make you install a giant (>200MB) software package to
use this all-in-one device. However, sometimes you want to put it on
a print server and use it as a network printer from a remote client.
The correct drivers to use are the HP DeskJet 5740, which is the most
compatible color inkjet device. There is actually a set of drivers for
the entire DeskJet 5700 Series of devices. You will, of course, lose
any scanning or other functions besides printing, but such is the price
to pay for network printing! Download the Basic Feature Drivers here.
3/29/2006
Adobe
Reader for Linux (v7.0) does not let you select a printer.
In fact, it ONLY let you use lp as a printer, which goes
to whatever is your default, or at least whichever printer lp is set
up to use. It's not so trivial to change.
The easiest workaround is
to use a printer manager. If you use KDE, use kprinter.
If you are on Gnome, use gtklp.
Then, when you click on print in Adobe, change the /usr/bin/lp
to /usr/bin/gtklp for gtklp, or whatever it is for kprinter.
After you select print, a second dialogue box will come up that
lets you select the printer. It means extra mouseclicks, but it works
well. Not to mention these utilities are already installed on many standard
distributions (gtklp is definitely installed by default with SuSE).
4/6/2006
Redirect
STDOUT and/or STDERR in Linux.
I always forget this, so here's how it goes: 2>&1 1>/dev/null
means "bind STDERR to STDOUT, pipe STDOUT to /dev/null." 1>
/dev/null 2> /dev/null will do the same thing.
5/12/2006
Enter
key problems in Perl with Term::ReadKey under Windows.
When using the Term::ReadKey Perl module under Windows, when you hit
the enter key, it does not register until you hit yet another key. This
most likely has something to do with Windows reading the Enter key as
CRLF rather than LF (therefore, rather than just reading char 13, it
is actually reading char 10 followed by char 13). To get around this,
simply add a timeout when calling ReadKey (even if the timeout is insanely
long). For example, rather than calling ReadKey(0);, I called
ReadKey(999999999);. Suddenly, the Enter key was registered as
soon as you hit it, without having to punch a second key.
7/5/2006
Compiling
the Linux Kernel for Hyper Threading Support.
You must select the following options in the kernel configuration:
fas
Processor Family: Pentium-4
Symmetric multi-processing support (CONFIG_SMP)
SMT (Hyperthreading) scheduler support (CONFIG_SCHED_SMT) |
Selecting the processor family to be Pentium 4 causes make to
pass the "-march=pentium4" option when compiling
the kernel. Finally, in grub.conf, you must add the option "acpi=ht"
to the kernel commandline.
5/14/2006
wine:
failed to initialize: /opt/cxoffice/lib/wine/ntdll.dll.so: failed to
map segment from shared object: Cannot allocate memory.
I run Crossover office rather than regular Wine, which is why the path
is so weird. Nonetheless, the fix if probably the same. Simply run ulimit
-v unlimited from that same console window right before you
run Wine, and all should run!
7/22/2010
Assign
user rights in Windows (2k/XP).
This was surprisingly hard to find since it seems so basic. It is not
in the user settings either under the control panel or under Computer
Management. I suppose they don't want ordinary people messing with user
rights. Nonetheless, I had to do it! It can be done from the command
line if you obtain the Resource Kit, using the ntrights.exe
program (see this
link). I chose to do it from a GUI. Run mmc from the
command line and load the "Group Policy Object Editor"
snap-in (from File->Add/Remote Snap-in). A screen will pop up that
asks you for the "Group Policy Object;" make sure that
this says "Local Computer." Expand the menus to Local
Computer Policy->Computer Configuration->Windows Settings->Security
Settings->Local Policies->User Rights Assignment. You can then
simply double-click on a rights policy and add a group or user.
9/21/2010
Change
virtual disk size in VMWare.
This is ridiculously easy. I use the Linux version of VMWare Workstation,
but it is the same command in Windows. Run this command:
| /usr/bin/vmware-vdiskmanager -x 24GB "/vmware/ericvm/ericvm.vmdk" |
The -x option specifies the new size of the partition, and the last
option is simply the name of the (start of the) virtual disk file. If
you run that command from the virtual machine's directory, you do not
need to specify the path. Proceed to boot into a partition manager from
inside the VM and resize the partition on the virtual disk. Voila!
9/22/2010
Add
a raw hard disk to VirtualBox.
If you need to use an actual, physical hard disk in VirtualBox, you
will need to create a .vmdk file from the command line. To do this,
run the following command:
VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
-rawdisk /dev/sda |
The above command is, of course, specifying the entire hard disk rather
than just a partition. To use it, you must add it to the hard disk register
in VirtualBox; it will then appear in the drop-down list when you go
to add a drive.
1/7/2011
Cloning
a virtual disk drive in VirtualBox.
This is really easy, and fast, to do from a command line. Simply type
the following:
| VBoxManage clonehd /path/to/sourcedisk.vdi /path/to/destdisk.vdi
[-format VDI] |
Telling VBoxManage the format of the disk proved to be unnecessary
when I tried it. After you duplicate the disk, you will need to go into
the drive manager and add the drive to the list, then add it to whatever
virtual machine you wish to use.
9/26/2010
Run
Windows Installer in SAFE Mode.
If you try to Add/Remove Programs when booted into Windows Safe Mode,
you will get a "The Windows Installer Service could not be accessed"
error message. This is because the Windows Installer service is not
considered a "safe service" and therefore will not start in
Safe Mode. Use one of these
two methods to start it anyhow:
|
Tell Windows that Windows Installer is a safe service. From the
command line, run REG ADD "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SafeBoot\
Minimal\MSIServer" /VE /T REG_SZ /D "Service" net
start msiserver. This will set the Windows Installer Service as
legitimate for Safe Mode and start it at the same time. Unfortunately
this also leaves the service marked as safe, which is dangerous.
or
Run SafeMSI.exe,
a product from JSI, which will start the service in Safe Mode.
|
12/13/2010
Disable
default Administrative shares in Windows (NT4/W2K/XP).
Windows automatically shares all your hard drives, as well as your SYSTEMROOT
directory, by default; it also doesn't let you turn these shares off
very easily. You can do it temporarily from the GUI, but it reverts
on a reboot. Do do it permanently, add the following registry value
on workstation: Under HKLM\SYSTEM\CurrentControlSet\Services\LanManServer\Parameters,
AutoShareWks (this is a DWORD), value of 0.
Ncurses with wide support:
./configure --with-shared --prefix=/usr mandir=/usr/share/man --with-widec
http://packages.debian.org/stable/source/screen for version that works
with ncurses' --enable-widec build.
Make
your Virtual Console log in automatically!
ANSI fonts for X - http://home.earthlink.net/~us5zahns/enl/ansifont.html
Here's
a whole crapload of miscellaneous config files for Linux.
Repair
XP - Document containing various tips for repairing XP.
|