- Arch Linux
- #1 2012-08-14 17:56:54
- [SOLVED] Arch and AMD Geode LX 800 processor
- #2 2012-08-16 12:45:38
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- #3 2012-08-16 23:40:14
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- #4 2012-08-17 07:47:52
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- #5 2012-08-17 11:20:48
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- #6 2012-08-17 11:33:57
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- #7 2012-11-10 18:15:55
- Re: [SOLVED] Arch and AMD Geode LX 800 processor
- Linux distros for AMD Geode LX800 CPU
- Amd geode lx800 linux
- Embedded Linux on PC Engines
- Embedded Linux on Alix3d2 board PC Engines
Arch Linux
You are not logged in.
#1 2012-08-14 17:56:54
[SOLVED] Arch and AMD Geode LX 800 processor
I am trying to install archlinux on mini pc with amd geode lx 800 processor, which is acording to wikipedia x86 compatible. Having a lot of faith in linux kernel i installed archlinux x86_64 on compact flash, tested it on my laptop and it worked perfectly. But when i boot from ssd on the mini pc, nothing happens. All the logs from the boot on mini pc are empty. So i started to think that there is something up with kernel and processor. What could be causing the issue? Should i use x86_32 and where to find it? Should i use i586 as some have suggested?
PS: i can’t really see what is going on on mini pc, because it only has EGA connector and all my displays are VGA
Last edited by rokowsky (2012-08-17 11:23:35)
#2 2012-08-16 12:45:38
Re: [SOLVED] Arch and AMD Geode LX 800 processor
You won’t find x86_32 binaries, because they don’t exist. 386-compatible binaries have been dubbed i386, 486-compatible i486, and Pentium-compatible i586. Arch’s 32-bit x86 binaries are made generally for Pentium Pro compatible CPUs, AKA i686.
The Geode LX is an updated Nat Semi Geode GX2, which was an updated Cyrix MediaGX, which was a highly-integrated derivative of their 6×86, that came out way back in 1997, long before x86_64’s release in 2001, and subsequent supporting CPUs in 2003.
Being that Arch’s standard 32-bit binaries are i686, the Geode LX might not be fully compatible with them, but it aught to run. A few years ago, on a different distro, I had issues with i686-compiled VLC, for instance, but otherwise everything ran OK as i686.
#3 2012-08-16 23:40:14
Re: [SOLVED] Arch and AMD Geode LX 800 processor
I don’t think you’ll have much luck. The Geode LX 800 is an i586 processor. Many years ago I managed to get Arch to take but it was a fluke. I’ve never been able to do it since. Debian and derivatives perform pretty well though. Try Haiku, I’m using that on my Geode box currently.
#4 2012-08-17 07:47:52
Re: [SOLVED] Arch and AMD Geode LX 800 processor
All that should be required is a kernel patched to emulate the nopl instruction in software. The Geode LX has everything required for i686 except that instruction.
Last edited by Gusar (2012-08-17 07:49:10)
#5 2012-08-17 11:20:48
Re: [SOLVED] Arch and AMD Geode LX 800 processor
Thank you for the replies. There was a project to make archlinux-i586, but now it seems to be dead (http://code.google.com/p/archlinux-i586/) and there are patches that emulate nopl (https://bbs.archlinux.org/viewtopic.php?pid=775414) for older versions of kernel, so i would have to use older binutils and glibc and i am not to fond of that solution so i decided to use some other distribution.
For those that might have similar problems, i installed striped debian distribution called voyage linux that is and i quote «best run on a x86 embedded platforms such as PC Engines ALIX/WRAP, Soekris 45xx/48xx and Atom-based boards» — so exacly what i need for my ALIX. Since i only intend to run programs like rtorrent, vsftpd, rsync and lighttpd the voyage will do.
#6 2012-08-17 11:33:57
Re: [SOLVED] Arch and AMD Geode LX 800 processor
so i would have to use older binutils and glibc
I don’t see why that would be required. Those two have been fixed, so you could use the latest versions. Of course there’s the possibility that I’m wrong, so if someone knows for sure what the situation here is, do tell.
Basically, all you’d need is a kernel patch for a still supported kernel, like for example 3.0 LTS. I’ll do a search if that’s available. Not that I have a Geode processor, I’m just curious
#7 2012-11-10 18:15:55
Re: [SOLVED] Arch and AMD Geode LX 800 processor
The Geode LX 800 is an i586 processor.
Which is wrong. Yes, the Geode lacks of the NOPL instruction, but this instruction never was part of Intel’s i686 specification. Unfortunately, it became an unofficial standard. But as it seems, new versions of binutils or gcc or whatever realized that fact and stopped building NOPLs into executables, because ARCH i686 works on the Geode (using arch’s November 2012 iso).
Источник
Linux distros for AMD Geode LX800 CPU
Some time ago i was searching for a tiny fanless computer to use as an ecological, always-on server to run services on. Computer-based services are increasingly conquering our homes and workplaces, and it makes sense to me that new devices have to appear to make computers less obtrusive in everyday life (noise, heat dissipation, high power consumption, mechanical breakdowns, …) for 24/7 operation.
At this time, the Atom platforms was just apprearing (the eeepc had just appeared), and the alternatives were among Mini-ITX systems, VIA C7 processors, Geode LX800 CPUs, and ARM platforms. Single Board Computer based products were the gradually appearing, and embedded/mobile platforms were developing as well.
The device had to:
- be energy-efficient
- be totally fanless (and possibly, mechanics-less) for zero-dB operation
- run Linux out of the box with Open Source drivers
- fit a tight budget (
300€)
After some LinuxDevices.com browsing and reading some reviews (like this one), i opted for a 500 Mhz i486 AMD Geode processor, to have x86 compatibility and efficient energy consumption (
3-6W), with 1GB Flash hard drive and 512 MB RAM.
You will want to look for a lightweight (1 GB/i486/500Mhz !) Linux distribution for the device, get ready to fight a capricious BIOS (especially USB Flash disk booting which doesn’t work without some hiccups) and a surprisingly slow CPU. By elimination:
- Archlinux and other “modern desktop” distros are not an option (i586+)
- Source-based distros aren’t either (cross compiling or having a local compilation environment will eat time)
- For both disk space and graphics performance, adequate graphical distributions would be hard to find
- DamnSmallLinux did not boot (. )
- ModernNetbookdistros rely heavily on Intel hardware and are not i486 compatible
After trying our Ubuntu 8.04 whose apps sometimes throwed “illegal cpu instruction” warnings and no audio support (instead, a continuous buzz), i ended up choosing Debian (lenny) for an excellent compatibility and problem-free installation. For pure network uses, OpenWrt/*BSD/m0n0wall seem like nice choices.
- audio quality is really fine and i use it to wake me up and play music with my lightweight, ncurses-based webradio player, but the Alsa drivers seem a bit unstable (changing volume when playing audio makes audio crash)
- don’t expect a rocket, performance is closer to 10 years old computers (but for a fraction of the power consumption of course). At best you will get nostalgic, but forget about torrent downloading with e.g. Aria2 (you won’t get anywhere with 1GB space anyway)
- no noises, even from the power supply so far
- the device is a bit warm after a few days (
30°) but it’s stable
Here are a few advices:
- if you can, use an USB CD/DVD drive to boot from. The poor man’s install (USB Flash Disk) i a (psychological) challenge:
- most distros are published as .iso images; which means USB-based booting is up to you
- it is always tricky, since not many distros offer .img files or guides
- USB Flash Disks behave differently when booting, and some won’t work for BIOS compatibility issues
- other distros and kernel versions might work, but the one that works for me is the 2.6.26-2-486 kernel (the alsa module is snd_cs5535audio
- not installing xorg is a good incentive to keep things small (1 GB drive…)
It’s been running for the past months and it’s updating my dyndns domain, waking me up with pycwc, wakes up other computers on demand with WakeOnLan (hibernating), and is increasingly becoming more and more useful for daily needs.
If anyone has performance optimizations hints for the AMD Geode LX800 platform or good results with other distros, please post some comments.
Источник
Amd geode lx800 linux
Embedded Linux on PC Engines
Embedded Linux on Alix3d2 board PC Engines
Main Features of ALIX3D2 Board:
• CPU: 500 MHz AMD Geode LX800 • DRAM: 256 MB DDR DRAM • Storage: CompactFlash socket, 44 pin IDE header • Power: DC jack or passive POE, min. 7V to max. 20V • Three front panel LEDs, pushbutton • Expansion: 2 miniPCI slots, LPC bus • Connectivity: 2 Ethernet channels (Via VT6105M 10/100) • I/O: DB9 serial port, dual USB port • Board size: 6 x 6″ (152.4 x 152.4 mm) — same as WRAP.1E • Firmware: tinyBIOS |
Download and untar the buildroot package, run as non-root by typing «make menuconfig»
- ./binaries/uclibc/rootfs.i686.ext2 -> image file system
- ./build_i686/staging_dir/usr/bin/ -> toolcahin set that we’ll gone use to build kernel
LINUX KERNEL COMPILATION
#> cd linux-2.6.21.5 #> vi makecustom
press «i» to insert character, type in lines below:
export PATH=$PATH: /buildroot-2009.02/build_i686/staging_dir/usr/bin/
make $1 $2 $3 CROSS_COMPILE=i686-linux-uclibc-
press «:» follow by presseing «wq» to write and exit the vi editor
next make the files executables as follow
#> chmod a+x makecustom
To start the configuring the kernel source, type in
This will show you the menu for the linux kernel configuration.
select the «Processor type and features» -> «processor family» -> check «Geode LX/GX» Uncheck the » HPET timer support » since AMD Geode doesn’t have it.
exit to higehr level, select «Power management option (ACPI/APM)» uncheck » Power management supoort» since the board doesn’t had it.
exit to higher menu level, select the «Bus options (PCI, PCMCIA, EISA, MCA, ISA)»check » NatSemi SCx200 support» & » NatSemi SCx200 27MHz High-Resolution Timer Suppor»
INSTALLING KERNEL TO SOURCE FILESYSTEM
#>mkdir buildroot-2009.02/target/generic/target_skeleton/boot
#>cp linux-2.6.21.5/arch/i386/boot/bzImage /buildroot-2009.02/target/generic/target_skeleton/boot/.
#>mkdir /buildroot-2009.02/project_build_i686/uclibc/root/boot
#>cp /linux-2.6.21.5/arch/i386/boot/bzImage /buildroot-2009.02/project_build_i686/uclibc/root/boot/.
INSTALLING MODULES TO SOURCE FILESYSTEM
#> cd linux-2.6.21.5
#> vi Install_modules
press «i» to start inserting text, type in word below:
export PATH=$PATH: /buildroot-2009.02/build_i686/staging_dir/usr/bin
make modules_install ARCH=i386 CROSS_COMPILE=i686-linux-uclibc- INSTALL_MOD_PATH= /buildroot-2009.02 /target/generic/target_skeleton make modules_install ARCH=i386 CROSS_COMPILE=i686-linux-uclibc- INSTALL_MOD_PATH= /buildroot-2009.02/project_build_i686/uclibc/root
#> chmod a+x Install_modules
FINALIZING SOURCE FILESYSTEM
menu.lst for the grub
press «i» to start edit, type in lines below
default 0
timeout 8
title Alix3d2 embedded linux Console
root (hd0,0)
kernel /boot/bzImage root=/dev/hda1 rw console=ttyS0,38400,8,n,1
title Alix3d2 embedded linux
root (hd0,0)
kernel /boot/bzImage root=/dev/hda1 rw
press «:» followed by «wq»
Modified inittab to enable serial comm as main console
#> cd buildroot-2009.02
#> vi target/generic/target_skeleton /etc/inittab Press «i» to enable insertig character, scroll down to the part that consist of
# Put a getty on the serial port
#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
edit it into
# Put a getty on the serial port
ttyS0::respawn:/sbin/getty -L ttyS0 38400 vt100
MOUNTING FILESYSTEM IMAGE TO COMPACT FLASH
#> su
#> cfdisk /dev/sdc
quit cf disk and go to image filesystem directory.
#> cd buildroot-2009.02/ binaries/uclibc/
#> mkdir 1
#> mkdir 2
mount our image to 1/ directory and compact flash to 2/
#> mount rootfs.i686.ext2 -o loop 1
#> mount /dev/sdc1 2
copy recrusively by retaining files ownership from 1 to 2
#> cp -ar 1/* 2/.
#> sync
You may check the copied files by at directory 2/ by «ls» command.
unmount both device
#> umount 1
#> umount 2
MAKING COMPACT FLASH BOOTABLE
select «root» -> click «ok» fill in the device by detected driver ones, in this case «/dev/sdc1»
select «linux» add linux partition, check the «dev/sdc1» uncheck others
#> grub
grub> device (hd0) /dev/sdc
grub> root (hd0,0)
grub> kernel /boot/bzImage
grub> rootnoverify (hd0,0)
grub> makeactive
grub> chainloader +1
grub> setup (hd0)
grub> quit
#>
Prepare your alix board firmly, place the compact flash to its slot, plug the serial cable to your PC
in my application i run hyperterminal for console application with the setting using baudrate 38400, 8 bit data no parity, 1stp bit and no flow control.
Now plug the power cord.
Captured text show as follow:
PC Engines ALIX.3 v0.99
640 KB Base Memory
15360
31744
48128
64512
80896
97280
113664
130048 KB Extended Memory
01F0 Master 848A CF Card
Phys C/H/S 1991/16/63 Log C/H/S 995/32/63
GRUB Loading stage1.5.
GRUB loading, please wait.
Linux version 2.6.21.5 (huntu2@linux-h53q) (gcc version 4.2.4) #4 SMP Sat Jul 3 14:27:17 WIT 2010
BIOS-provided physical RAM map:
sanitize start
sanitize end
copy_e820_map() start: 0000000000000000 size: 00000000000a0000 end: 00000000000a0000 type: 1
copy_e820_map() type is E820_RAM
copy_e820_map() start: 00000000000f0000 size: 0000000000010000 end: 0000000000100000 type: 2
copy_e820_map() start: 0000000000100000 size: 0000000007f00000 end: 0000000008000000 type: 1
copy_e820_map() type is E820_RAM
copy_e820_map() start: 00000000fff00000 size: 0000000000100000 end: 0000000100000000 type: 2
BIOS-e820: 0000000000000000 — 00000000000a0000 (usable)
BIOS-e820: 00000000000f0000 — 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 — 0000000008000000 (usable)
BIOS-e820: 00000000fff00000 — 0000000100000000 (reserved)
0MB HIGHMEM available.
128MB LOWMEM available.
Zone PFN ranges:
DMA 0 -> 4096
Normal 4096 -> 32768
HighMem 32768 -> 32768
early_node_map[1] active PFN ranges
0: 0 -> 32768
DMI not present or invalid.
Using APIC driver default
Allocating PCI resources starting at 10000000 (gap: 08000000:f7f00000)
Built 1 zonelists. Total pages: 32512
Kernel command line: root=/dev/hda1 rw console=ttyS0,38400,8,n,1
No local APIC present or hardware disabled
Initializing CPU#0
PID hash table entries: 512 (order: 9, 2048 bytes)
Detected 431.649 MHz processor.
Console: colour dummy device 80×25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 124388k/131072k available (2875k kernel code, 6192k reserved, 1379k data, 248k init, 0k highmem)
virtual kernel memory layout:
fixmap : 0xffe1b000 — 0xfffff000 (1936 kB)
pkmap : 0xff800000 — 0xffc00000 (4096 kB)
vmalloc : 0xc8800000 — 0xff7fe000 ( 879 MB)
lowmem : 0xc0000000 — 0xc8000000 ( 128 MB)
.init : 0xc052f000 — 0xc056d000 ( 248 kB)
.data : 0xc03cefdb — 0xc0527d7c (1379 kB)
.text : 0xc0100000 — 0xc03cefdb (2875 kB)
Checking if this processor honours the WP bit even in supervisor mode. Ok.
Calibrating delay using timer specific routine.. 864.70 BogoMIPS (lpj=1729412)
Mount-cache hash table entries: 512
CPU: L1 I Cache: 64K (32 bytes/line), D cache 64K (32 bytes/line)
CPU: L2 Cache: 128K (32 bytes/line)
Compat vDSO mapped to ffffe000.
Checking ‘hlt’ instruction. OK.
SMP alternatives: switching to UP code
Freeing SMP alternatives: 18k freed
CPU0: AMD Geode(TM) Integrated Processor by AMD PCS stepping 02
SMP motherboard not detected.
Local APIC not detected. Using dummy APIC emulation.
Brought up 1 CPUs
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xfcd03, last bus=0
PCI: Using configuration type 1
Setting up standard PCI resources
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI: Probing PCI hardware
Time: tsc clocksource has been installed.
Switched to high resolution mode on CPU 0
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 4096 (order: 3, 49152 bytes)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
TCP: Hash tables configured (established 4096 bind 4096)
TCP reno registered
microcode: CPU0 not a capable Intel processor
IA-32 Microcode Update Driver: v1.14a
scx200: NatSemi SCx200 Driver
Total HugeTLB memory allocated, 0
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
Real Time Clock Driver v1.12ac
AMD Geode RNG detected
Linux agpgart interface v0.102 (c) Dave Jones
Hangcheck: starting hangcheck timer 0.9.0 (tick is 180 seconds, margin is 60 seconds).
Hangcheck: Using get_cycles().
Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
floppy0: no floppy controllers found
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
Intel(R) PRO/1000 Network Driver — version 7.3.20-k2
Copyright (c) 1999-2006 Intel Corporation.
e100: Intel(R) PRO/100 Network Driver, 3.5.17-k2-NAPI
e100: Copyright(c) 1999-2006 Intel Corporation
via-rhine.c:v1.10-LK1.4.3 2007-03-06 Written by Donald Becker
eth0: VIA Rhine III (Management Adapter) at 0x11000, 00:0d:b9:16:7f:e4, IRQ 10.
eth0: MII PHY found at address 1, status 0x7849 advertising 05e1 Link 0000.
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.60.
netconsole: not configured, aborting
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
AMD5536: IDE controller at PCI slot 0000:00:0f.2
AMD5536: chipset revision 1
AMD5536: not 100% native mode: will probe irqs later
AMD5536: 0000:00:0f.2 (rev 01) UDMA100 controller
ide0: BM-DMA at 0xff00-0xff07, BIOS settings: hda:DMA, hdb:pio
hda: CF Card, CFA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 128KiB
hda: 2006928 sectors (1027 MB) w/1KiB Cache, CHS=1991/16/63, UDMA(33)
hda: hda1
3ware Storage Controller device driver for Linux v1.26.02.002.
Fusion MPT base driver 3.04.04
Copyright (c) 1999-2007 LSI Logic Corporation
Fusion MPT SPI Host driver 3.04.04
ieee1394: raw1394: /dev/raw1394 device initialized
usbmon: debugfs is not available
ehci_hcd 0000:00:0f.5: EHCI Host Controller
ehci_hcd 0000:00:0f.5: new USB bus registered, assigned bus number 1
ehci_hcd 0000:00:0f.5: irq 15, io mem 0xefffd000
ehci_hcd 0000:00:0f.5: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 4 ports detected
ohci_hcd 0000:00:0f.4: OHCI Host Controller
ohci_hcd 0000:00:0f.4: new USB bus registered, assigned bus number 2
ohci_hcd 0000:00:0f.4: irq 15, io mem 0xefffe000
usb usb2: configuration #1 chosen from 1 choice
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 4 ports detected
USB Universal Host Controller Interface driver v3.0
usbcore: registered new interface driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver.
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbhid
drivers/usb/input/hid-core.c: v2.6:USB HID core driver
i8042.c: No controller found.
mice: PS/2 mouse device common for all mice
device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com
geode-aes: GEODE AES engine enabled.
oprofile: using timer interrupt.
TCP cubic registered
NET: Registered protocol family 1
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
Using IPI Shortcut mode
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 248k freed
Initializing random number generator. done.
Starting network.
ip: RTNETLINK answers: File exists
Welcome to Buildroot
uclibc login:
The default login were root with no password since it was not configured yet. Congratulations now you had run your linux on ALIX3D board for the first time. Later you may add your own apllication, reconfiguring component to be installed and so much more.
You can download my image resulted on compact flash here, use winimage to write it to the compact flash.
Источник