Posts categorized “Linux”.

Solved: e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang

On one amd64 machine running CentOS 5.5 x86_64 the e1000 network interfaces go down and up with the following messages:

e1000: eth0: e1000_clean_tx_irq: Detected Tx Unit Hang
 Tx Queue             <0>
 TDH                  <62>
 TDT                  <8d>
 next_to_use          <8d>
 next_to_clean        <62>
buffer_info[next_to_clean]
 time_stamp           <10037f7b6>
 next_to_watch        <62>
 jiffies              <10037fcd4>
 next_to_watch.status <0>
NETDEV WATCHDOG: eth0: transmit timed out

This issue usually appears on machines with 4GB or more memory. I have tried a lot of things but no luck.

The fix comes with new Intel’s e1000 driver.

Download the latest driver from e1000 stable on SF (8.0.25 at the time of writing).

Build the RPM:

rpmbuild -tb /path/to/e1000-8.0.25.tar.gz

Install the new e1000 RPM driver:

rpm -ivh /usr/src/redhat/RPMS/x86_64/e1000-8.0.25-1.x86_64.rpm

Add ignore_64bit_dma=1 driver option in /etc/modprobe.conf:

options e1000 ignore_64bit_dma=1

Reboot and enjoy!

From e1000 README file:

ignore_64bit_dma
—————-
Valid Range:   0-xxxxxxx (0=off)
Default Value: 0
Usage: insmod e1000.ko ignore_64bit_dma=1

When non zero the driver will only request DMA mapping of host memory
in the lower 4GB region. This provides a workaround for users of AMD platforms
GA-MA78G-DS3H & SM4021M-T2R+ that have reported TXHangs on system that have
>4GB RAM, suspected caused by some (no deep root cause) issue in the Dual
Address Cycle (DAC) DMA mechanism needed to access addresses above 4GB.
Setting ignore_64bit_dma to 1 activates the workaround.

This parameter is different than other parameters, in that it is a
single (not 1,1,1 etc.) parameter applied to all driver instances and
it is also available during runtime at
/sys/module/e1000/parameters/ignore_64bit_dma

Update: if your newer kernel crashes with e1000 ElRepo driver version 8.0.30 or older (detailed here), please update to the latest version, currently 8.0.35. Thanks again ElRepo!

Installing Solaris 11 Express domU under CentOS 5 dom0

First, download Solaris 11 Express from Oracle.

Install Solaris 11 Express HVM domU with virt-install:

virt-install -n sx11 -r 2048 --vcpus=4 --os-type=solaris --os-variant=opensolaris \
-v -c /path/to/sol-11-exp-201011-text-x86.iso --disk path=sx11.img,size=20 \
-b br1 --vnc --noautoconsole

Of course, adjust domU memory (-r), vcpus, path to Solaris 11 Express DVD, disk path, network bridge (-b).

After installation has started, you can connect to the VNC display. First, determine which port:

virsh vncdisplay sx11
:8

Finish the installation as usual. After reboot, you can start the Solaris 11 Express domU:

virsh start sx11

or have the domain autostarted at dom0 boot:

virsh autostart sx11

Or disable autostarting

virsh autostart --disable sx11

Enjoy!

Fedora 14 pptpd RPMs

Fedora 14 source RPM:
pptpd-1.3.4-1.fc14.src.rpm MD5 8fe1eae2096eb387c74394618027dda1

Fedora 14 x86_64 RPM:
pptpd-1.3.4-1.fc14.x86_64.rpm MD5 17c9bf6473168b1b59ca331fb73b55b7

For more informations please see my previous posts here and here.

Enjoy!

Fedora 13 pptpd RPMs

Fedora 13 source RPM:
pptpd-1.3.4-1.fc13.src.rpm
MD5 8ccf41430af197e85ba7b67a0d6b95ea

Fedora 13 i386 RPM:
pptpd-1.3.4-1.fc13.i386.rpm MD5 904bcab3f58784a362499496ebdacb25

Fedora 13 x86_64 RPM:
pptpd-1.3.4-1.fc13.x86_64.rpm MD5 3d3209427d11981ef1827bd004e65736

I have commented out logwtmp in pptpd.conf, please see my previous post.

Tested with the following PPTP clients: Apple Mac OS X 10.6.4, Apple iPad (iOS 3.2.2), Apple iPhone 4 (iOS 4.1), Apple iPhone 3GS (iOS 4.1), Apple iPhone 3G (iOS 4.1), Microsoft Windows 7 Professional, Microsoft Windows XP Professional SP3, pptpclient 1.7.2, mpd 5.5.

Enjoy!

(Open)Solaris, Linux and FreeBSD tunnelbroker.net IPv6 setup

After you create a Regular Tunnel at Hurricane Electric‘s tunnelbroker.net you will receive the following informations:

Server IPv4 Address
Server IPv6 Address
Client IPv4 Address
Client IPv6 Address
Routed /64

Solaris and OpenSolaris IPv6 tunnel setup

Create /etc/hostname6.ip.tun0 file:
tsrc Client_IPv4_Address tdst Server_IPv4_Address up
addif Client_IPv6_Address Server_IPv6_Address up

Add the permanent IPv6 default gateway:
route -p add -inet6 default Server_IPv6_Address

(Tested on Solaris 10 5/09 and 10/09, OpenSolaris 2009.06 and 2010.02 preview snv_127)

Linux (RHEL / Fedora / CentOS) IPv6 tunnel setup

Create /etc/sysconfig/network-scripts/ifcfg-sit1 file:

DEVICE=sit1
BOOTPROTO=none
ONBOOT=yes
IPV6INIT=yes
IPV6TUNNELIPV4=Server_IPv4_Address
IPV6TUNNELIPV4LOCAL=Client_IPv4_Address
IPV6ADDR=Client_IPv6_Address/64

Add the following to /etc/sysconfig/network file:

NETWORKING_IPV6=yes
IPV6_DEFAULTDEV=sit1

(Tested with Fedora 11 and 12, CentOS 5.3 and 5.4)

FreeBSD IPv6 tunnel setup

Add the following lines to /etc/rc.conf file:

gif_interfaces="gif0"
gifconfig_gif0="Client_IPv4_Address Server_IPv4_Address"
ipv6_enable="YES"
ipv6_network_interfaces="lo0 gif0"
ipv6_ifconfig_gif0="Client_IPv6_Address prefixlen 128"
ipv6_defaultrouter="Server_IPv6_Address"

(Tested with FreeBSD 6.4)

Installing Fedora 12 PV domU guest on xVM dom0 OpenSolaris

Create a 10 GB ZVOL for storage:
pfexec zfs create -V 10g rpool/f12d0

Install Fedora 12 domU:
pfexec virt-install -n f12 -r 512 --vcpus=4 -f /dev/zvol/dsk/rpool/f12d0 -b e1000g0 --os-type=linux -p --nographics --os-variant=fedora11 -l http://fedora-12-mirror/fedora/linux/releases/12/Fedora/i386/os/

-n f12 – domU’s name
-r 512 – allocate 512 MB memory
–vcpus=4 – number of virtual CPUs allocated (make sure this number is lower or equal to the number of CPUs available)
-f /dev/zvol/dsk/rpool/f12d0 – ZVOL block device
-b e1000g0 – bridged networking to e1000g0 interface
-p – paravirtualized guest
–os-variant=fedora11 – “hack” until fedora12 OS-Variant will be integrated into xVM
-l http://fedora-12-mirror/fedora/linux/releases/12/Fedora/i386/os/ – replace fedora-12-mirror with a near Fedora 12 mirror, replace i386 with x86_64 for 64-bit domU

After you bring up the network, do a VNC installation.
Until xVM supports ext4 boot, make sure to create an ext3 /boot partition (or just a big ext3 / filesystem)

After installation, start the domU:
pfexec xm start -c f12
You will be presented the pygrub menu, just press Enter to boot.

Log into the domU and change the default timeout=0 to a different value (e.g. 5 seconds) in /boot/grub/grub.conf. Now you can use virsh start / shutdown commands.

To auto-start the guest on host boot:
virsh autostart f12

Tested on OpenSolaris 2010.02 preview snv_127.

Fedora 12 PPTP server

I’ve built a Fedora 12 Poptop rpm:

pptpd-1.3.4-1.fc12.i386.rpm MD5 bdab201d70e78abe40f873d71880f718

pptpd-1.3.4-1.fc12.src.rpm MD5 ebd64f47b0a40a7585e22a11cc4e2890

If you get this error message:
Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4
just comment out logwtmp option in /etc/pptpd.conf and restart pptpd with service pptpd restart.

Username/password pairs used for pptp authentication should be placed in /etc/ppp/chap-secrets
# client server secret IP addresses
username * password

To supply a DNS server to PPTP clients, just add them to /etc/ppp/options.pptpd like ms-dns A.B.C.D.

To configure local and remote PPTP client’s IP address modify localip and remoteip options in /etc/pptpd.conf.

To enable pptp server at startup run chkconfig pptpd on.

$20 Xen VPS Gandi vs. Linode vs. Slicehost

Gandi Linode Slicehost
Plan 1 Share Linode 360 256 slice
Price 14.35 EUR
(~20 USD)
19.95 USD 20 USD
RAM 256MB 360MB 256MB
Storage 8GB
(3 OS + 5 Data)
16GB 10GB
Bandwidth 5 Mbit 200GB 100GB
My VPS Location Paris, France
Europe
Dallas, TX
USA
St. Louis, MI
USA
My VPS CPU Quad-Core AMD Opteron(tm) Processor 8346 HE Intel(R) Xeon(R) CPU L5420 @ 2.50GHz Dual Core AMD Opteron(tm) Processor 270
My VPS vCPUs 1 4 4
My VPS OS CentOS 5.3 CentOS 5.3 CentOS 5.3
My VPS Buffered disk reads 10.48 MB/sec 73.77 MB/sec 60.86 MB/sec
My VPS OGR-NG Benchmark 23,608,069 nodes/sec 40,910,174 nodes/sec 17,593,557 nodes/sec
My VPS RC5-72 Benchmark 7,703,097 keys/sec 9,297,850 keys/sec 8,585,510 keys/sec

Linux /proc/cpuinfo flags

fpu – Onboard FPU
vme – Virtual Mode Extensions
de – Debugging Extensions
pse – Page Size Extensions
tsc – Time Stamp Counter
msr – Model-Specific Registers
pae – Physical Address Extensions
mce – Machine Check Architecture
cx8 – CMPXCHG8 instruction
apic – Onboard APIC
sep – SYSENTER/SYSEXIT
mtrr – Memory Type Range Registers
pge – Page Global Enable
mca – Machine Check Architecture
cmov – CMOV instructions (plus FCMOVcc, FCOMI with FPU)
pat – Page Attribute Table
pse36 – 36-bit PSEs
pn – Processor serial number
clflush – CLFLUSH instruction
dts – Debug Store
acpi – ACPI via MSR
mmx – Multimedia Extensions
fxsr – FXSAVE/FXRSTOR, CR4.OSFXSR
sse – SSE
sse2 – SSE2
ss – CPU self snoop
ht – Hyper-Threading
tm – Automatic clock control
ia64 – IA-64 processor
pbe – Pending Break Enable

syscall – SYSCALL/SYSRET
mp – MP Capable
nx – Execute Disable
mmxext – AMD MMX extensions
fxsr_opt – FXSAVE/FXRSTOR optimizations
pdpe1gb – GB pages
rdtscp – RDTSCP
lm – Long Mode (x86-64)
3dnowext – AMD 3DNow! extensions
3dnow – 3DNow!
k8 – Opteron, Athlon64
k7 – Athlon
constant_tsc – TSC ticks at a constant rate
up – smp kernel running on up
pebs – Precise-Event Based Sampling
bts – Branch Trace Store
nonstop_tsc – TSC does not stop in C states
pni – SSE-3
pclmulqdq – PCLMULQDQ instruction
dtes64 – 64-bit Debug Store
monitor – Monitor/Mwait support
ds_cpl – CPL Qual. Debug Store
vmx – Hardware virtualization
smx – Safer mode
est – Enhanced SpeedStep
tm2 – Thermal Monitor 2
ssse3 – Supplemental SSE-3
cid – Context ID
fma – Fused multiply-add
cx16 – CMPXCHG16B
xptr – Send Task Priority Messages
pdcm – Performance Capabilities
dca – Direct Cache Access
sse4_1 – SSE-4.1
sse4_2 – SSE-4.2
x2apic – x2APIC
aes – AES instructions
xsave – XSAVE/XRSTOR/XSETBV/XGETBV
avx – Advanced Vector Extensions
hypervisor – Running on a hypervisor
lahf_lm – LAHF/SAHF in long mode
cmp_legacy – If yes HyperThreading not valid
svm – Secure virtual machine
extapic – Extended APIC space
cr8legacy – CR8 in 32-bit mode
abm – Advanced bit manipulation
sse4a – SSE-4A
ibs – Instruction Based Sampling
sse5 – SSE-5
skinit – SKINIT/STGI instructions
wdt – Watchdog timer

EU VPS wanted

I am still searching a reasonable-priced Linux Xen VPS located in EU (256 MB RAM, few GB storage).