Best of Tech Support

Various

Issue #101, September 2002

Our experts answer your technical questions.

Perl Won't Print without a Newline

When I run a Perl script (version 5.6.0) and try to print a number, for example, print 5;, the number will not be printed to the screen unless I include a newline character print 5,`\n';. If I change the shell to csh or ksh, the problem goes away. But if I set my shell to Bash or sh, the Perl script will not print the number to the screen, but it will print a string to the screen. My question is what do I need to change in the Bash shell to get it to work correctly with Perl?

—Blake Brezeale, blake.brezeale@bigfoot.com

You might have corrupted your Bash shell environment. In this case you can type reset at the shell prompt and press Enter.

—Usman S. Ansari, uansari@yahoo.com

Mixed-up Compiler Versions

I'm running Mandrake 8.1, which comes with gcc 2.96. I tried updating my compiler to 3.0.x using the Mandrake update software, and now I show parts of gcc 2.96 installed and parts of 3.0.x installed. As a result, I can't compile anything anymore.

—Rich Till, rtill@vetconnect.com

You should first uninstall all the gcc pieces (2.96 and 3.0.x), including libstdc and anything that is directly dependent on gcc 2.96. When all the pieces are removed from the system, re-install gcc 3.0.x and all the necessary pieces. Resolve any conflicts during the gcc 3.0.x install.

—Usman S. Ansari, uansari@yahoo.com

New Red Hat Install Won't Boot

I am trying to install Red Hat Linux 7.2 on an Intel hardware machine with a DPT VI (Adaptec) hardware RAID 5 setup. I go through the installation process okay and partitions are created. When I finish the installation process and press Enter to boot up, however, I get the error messages:

creating root device
mounting root filesystem
mount: error 19 mounting ext3
pivotroot: pivot_root (/sysroot, /sysroot/initrd)
     failed:2
freeing unused kernel memory: 220K freed
kernel panic: No init found  Try passing init=
     option to kernel

—Byron Rendar, brendar@pcc.edu

Ted Ts'o has written a solution for this problem at: www.redhat.com/mailing-lists/ext3-users/msg03575.html. You need to modify /etc/fstab; try mounting the root filesystem as ext2 if it cannot mount as ext3. Change the ext3 in /etc/fstab to ext3,ext2. (You can convert the ext2 filesystem to ext3 later.) A longer alternate solution also is available on the web site.

—Chad Robinson, crobinson@rfgonline.com, and Don Marti, info@linuxjournal.com

Getting On-Line with Cable

How do I connect to the Internet using digital cable? My provider is Cox in Oklahoma City, and they do not support Linux machines. My NIC is a Realtek 8139 10/100. SuSE Linux detects the card, and it's enabled with DHCP. During bootup my card is detected but no IP address is assigned.

—Matt Reynolds, mattreynolds@cox.net

Is your provider actually using the DHCP protocol? Some providers are switching to PPP over Ethernet, which is not compatible. Check with your local Cox office to be sure; Cox uses both, depending on where you are in the country. SuSE supports PPP over Ethernet, but it's documented under ADSL or T-DSL in the manual, and the YaST2 configuration screen is called “DSL configuration”. Install the pppoed package, and see sdb.suse.de/sdb/en/html/hoe_adsl_pppoe.html.

—Chad Robinson, crobinson@rfgonline.com, and Don Marti, info@linuxjournal.com

Need to Set High-Numbered DHCP Options

As I work with IP-telephony (Nortel), I need to use vendor-specific codes in my DHCP server. Is there any DHCP server out there for Linux where it is possible to use vendor/option codes higher than those the Red Hat distribution uses?

—Bjoern Arstad, chancho@online.no

If your DHCP option code isn't supported by name, you can include it in dhcpd.conf with:

option option-nnn 'value';

where nnn is the option code as a three-digit decimal number. See man dhcp-options-dhcpd.

—Don Marti, info@linuxjournal.com

Ethernet Masked Ball

I would like to be able to modify the MAC ID of my Ethernet card in much the same way I can with my Linksys router. Is there an easy way to do this?

—Mike O'Doherty, mgi1356@motorola.com

You didn't specify which Ethernet card you have; some allow this, while others do not. If your card does allow this, you can use ifconfig as follows:

ifconfig eth0 hw ether 001122334455

For those using cable or DSL modems, note that this is a useful trick if you have set up your service using a Windows box and want to install a Linux firewall/gateway. Most providers track the MAC address of the workstation's Ethernet card and can be hard to deal with if this changes. With the above command, you can force your Linux gateway to have the same MAC address as your original client system.

—Chad Robinson, crobinson@rfgonline.com

Touch Me, It's So Easy to Leave Me...

What is the required XF86Config-4 setup to use a Dynapro (3M) touchscreen? Do I need to enable it with something similar to xsetpointer NFI3 after X starts?

—Shane Kennedy, skenn@indigo.ie

You can find updated drivers for 3M (formerly Dynapro) touchscreens at www.cdp1802.org/mmmtouch.

—Robert Connoy, rconnoy@penguincomputing.com