Posts categorized “Linux embedded”.

ODROID C2 RTC module under Arch Linux ARM

How to enable RTC Shield on Arch Linux ARM on ODROID C2

(Based on this Hardkernel wiki)

Install Device Tree Compiler:

# pacman -S dtc
resolving dependencies…
looking for conflicting packages…

Packages (1) dtc-1.4.2-1

Total Installed Size: 0.26 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(1/1) checking available disk space [######################] 100%
:: Processing package changes…
(1/1) installing dtc [######################] 100%

Enable the RTC module in the DTB file:

# fdtput -t s /boot/dtbs/meson64_odroidc2.dtb /i2c@c1108500/pcf8563@51 status “okay”

Enable the RTC shield in the DTB file at every shutdown / reboot, create a file in /etc/systemd/system like rtc.service:

[Unit]
Description=Enable RTC Shield
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/fdtput -t s /boot/dtbs/meson64_odroidc2.dtb /i2c@c1108500/pcf8563@51 status “okay”

[Install]
WantedBy=shutdown.target

Enable the rtc service:

# systemctl enable rtc
Created symlink /etc/systemd/system/shutdown.target.wants/rtc.service -> /etc/systemd/system/rtc.service.

Load the kernel module at boot time:

# echo aml_i2c >> /etc/modules-load.d/aml_i2c.conf

reboot

Confirm RTC time after reboot:

# timedatectl
Local time: Mon 2016-11-14 14:13:37 AST
Universal time: Mon 2016-11-14 11:13:37 UTC
RTC time: Mon 2016-11-14 11:13:37
Time zone: Asia/Qatar (AST, +0300)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no

Apache httpd 2.4 forward proxy

The Apache httpd 2.4 code below defines a forward proxy (squid drop in replacement) on TCP port 3128. Proved to be faster than squid 3.5 on the same hardware when using Apache httpd event MPM.

Make sure you have a local DNS caching resolver, such as unbound or PowerDNS Recursor configured in /etc/resolv.conf.

ProxyDomain directive protects the proxy from accessing domain hosts by filling up the local domain name or search domains from /etc/resolv.conf.

Apache httpd mod_reqtimeout drops some long lived https connections in its default configuration (RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500).

Required modules: mod_proxy, mod_proxy_connect.
More… »

Linux – how to disable cgroups

One liner:

# grep -v ^# /proc/cgroups|cut -f 1|xargs -ifoo echo -n foo,
cpuset,cpu,cpuacct,blkio,memory,devices,freezer,net_cls,pids,

Add the list to cgroup_disable= kernel parameter in the bootloader configuration, for example to /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=”cgroup_disable=cpuset,cpu,cpuacct,blkio,memory,devices,freezer,net_cls,pids

OpenWRT on Asus WL-HDD2.5

dmesg:

CPU revision is: 00024000
Enabling BCM4710A0 cache workarounds.
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, linesize 16 bytes.
Linux version 2.4.30 (nbd@ux-2y02) (gcc version 3.4.4 (OpenWrt-1.0)) #1 Sun Mar 26 19:02:04 CEST 2006
Setting the PFC value as 0x15
Determined physical RAM map:
 memory: 01000000 @ 00000000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
CPU: BCM4710 rev 0 at 125 MHz
Using 62.400 MHz high precision timer.
!unable to setup serial console!
Calibrating delay loop... 82.94 BogoMIPS
Memory: 14268k/16384k available (1412k kernel code, 2116k reserved, 100k data, 80k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction...  unavailable.
POSIX conformance testing by UNIFIX
PCI: Fixing up bus 0
PCI: Fixing up bridge
PCI: Setting latency timer of device 01:00.0 to 64
PCI: Fixing up bus 1
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch ([email protected])
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
Squashfs 2.1-r2 (released 2004/12/15) (C) 2002-2004 Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
b44.c:v0.93 (Mar, 2004)
PCI: Setting latency timer of device 00:02.0 to 64
eth0: Broadcom 47xx 10/100BaseT Ethernet 00:11:2f:7d:85:4a
PCI: Setting latency timer of device 00:08.0 to 64
eth1: Broadcom 47xx 10/100BaseT Ethernet 00:11:2f:7d:85:4a
 Amd/Fujitsu Extended Query Table v1.1 at 0x0040
Physically mapped flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x400000 at 0x1fc00000
Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "pmon"
0x00040000-0x003f0000 : "linux"
0x000bc400-0x002b1000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x002c0000-0x003f0000 : "OpenWrt"
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 328 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear 
All bugs added by David S. Miller 
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 80k freed
Warning: unable to open an initial console.
Algorithmics/MIPS FPU Emulator v1.5
diag boardtype: 0000041a
Probing device eth0: No Robo switch in managed mode found
Probing device eth1: No Robo switch in managed mode found
Probing device eth2: No such device
Probing device eth3: No such device
BFL_ENETADM not set in boardflags. Use force=1 to ignore.
b44: eth1: Link is up at 100 Mbps, full duplex.
b44: eth1: Flow control is off for TX and off for RX.
jffs2.bbc: SIZE compression mode activated.
PCI: Setting latency timer of device 01:02.0 to 64
PCI: Enabling device 01:02.0 (0004 -> 0006)
eth2: Broadcom BCM4320 802.11 Wireless Controller 3.90.37.0
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky
Probing device eth0: No Robo switch in managed mode found
Probing device eth1: No Robo switch in managed mode found
Probing device eth2: [switch-robo.c:90] SIOCGETCPHYRD failed!
[switch-robo.c:90] SIOCGETCPHYRD failed!
No Robo switch in managed mode found
Probing device eth3: No such device
BFL_ENETADM not set in boardflags. Use force=1 to ignore.
device eth0 entered promiscuous mode
device eth1 entered promiscuous mode
device eth2 entered promiscuous mode
eth2: attempt to add interface with same source address.
br0: port 2(eth2) entering listening state
br0: port 1(eth1) entering listening state
br0: port 2(eth2) entering learning state
br0: port 1(eth1) entering learning state
br0: port 2(eth2) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth1) entering forwarding state
br0: topology change detected, propagating
br0: port 1(eth1) entering disabled state
b44: eth1: Link is up at 100 Mbps, full duplex.
b44: eth1: Flow control is off for TX and off for RX.
br0: port 1(eth1) entering listening state
br0: port 1(eth1) entering learning state
br0: port 1(eth1) entering forwarding state
br0: topology change detected, propagating

nvram:

size: 2870 bytes (29898 left)
acc_num=0
autofw_port0=
boardnum=asusX
boardtype=bcm94710dev
boot_wait=on
clkfreq=125
console_loglevel=1
dev_status=5
dhcp_domain=wan
dhcp_enable=1
dhcp_end=192.168.1.150
dhcp_start=192.168.1.100
dhcp_wins=wan
dl_ram_addr=a0001000
dmz_ipaddr=
et0macaddr=00:11:2F:7D:85:4A
et0mdcport=0
et0phyaddr=0
et1macaddr=00:11:2F:7D:85:4A
et1mdcport=1
et1phyaddr=01
filter_client0=
filter_maclist=
filter_macmode=deny
forward_port0=
fsckpart=
fw_disable=0
hardware_version=WL300-02-03-01-20
http_lanport=80
http_passwd=admin
http_username=
http_wanport=
ide_device=105a:
isformat=0
lan_domain=
lan_hwaddr=
lan_hwnames=
lan_ifname=br0
lan_ifnames=eth1 eth2
lan_ipaddr=192.168.1.220
lan_lease=86400
lan_netmask=255.255.255.0
lan_proto=static
lan_proto_x=1
lan_stp=1
lan_wins=
log_ipaddr=
log_level=0
ntp_server=192.5.41.40 192.5.41.41 133.100.9.2
os_date=Aug  4 2004
os_flash_addr=bfc40000
os_name=linux
os_ram_addr=80001000
os_server=
os_version=3.31.12.0
password=admin
pmon_ver=PMON 3.11.19.0
productid=WLHDD
regulation_domain=0X30DE
rescueflag=disable
restore_defaults=0
restore_defaults=0
router_disable=1
scratch=a0180000
sdram_config=0x0000
sdram_init=0x0419
sdram_ncdl=0x00000000
sdram_refresh=0x8040
sh_name=
sh_num=0
sh_path=
sh_rright=
sh_rright_x=
sh_wright=
sh_wright_x=
shutdown_hit=0
st_ftp_mode=1
st_max_user=6
st_model_t=
st_name=WL-HDD
st_part1=
st_part2=
st_part3=
st_part4=
st_part_t=
st_partall=
st_samba_mode=1
st_samba_workgroup=mygroup
st_status_t=No HDD mounted
stats_server=
time_zone=UCT0
timer_interval=3600
upnp_enable=0
usb_available=1
usb_tmp_index=1:(null):add
username=admin
wan_desc=
wan_device=vlan1
wan_dns=
wan_domain=
wan_gateway=0.0.0.0
wan_hostname=
wan_hwaddr=
wan_hwname=
wan_ifname=eth1
wan_ifnames=
wan_ipaddr=0.0.0.0
wan_lease=86400
wan_netmask=0.0.0.0
wan_pppoe_ac=
wan_pppoe_demand=0
wan_pppoe_idletime=60
wan_pppoe_ifname=
wan_pppoe_keepalive=0
wan_pppoe_mru=1492
wan_pppoe_mtu=1492
wan_pppoe_passwd=
wan_pppoe_service=
wan_pppoe_username=
wan_primary=0
wan_proto=dhcp
wan_route=
wan_unit=0
wan_wins=
watchdog=3000
wl0_ifname=eth2
wl0_infra=1
wl0_mode=ap
wl0_radio=1
wl0_ssid=OpenWrt
wl_antdiv=-1
wl_auth=0
wl_auth_mode=disabled
wl_authmode_x=0
wl_bcn=100
wl_channel=0
wl_closed=0
wl_corerev=
wl_country=
wl_dtim=3
wl_frag=2346
wl_frameburst=off
wl_frameburst_x=0
wl_gmode=1
wl_gmode_protection=auto
wl_hwaddr=
wl_ifname=
wl_infra=1
wl_key1=
wl_key2=
wl_key3=
wl_key4=
wl_key=1
wl_lazywds=0
wl_maclist=
wl_maclist_num_x=0
wl_macmode=disabled
wl_macmode_x=0
wl_mode=ap
wl_phytype=b
wl_phytypes=
wl_plcphdr=long
wl_radio=1
wl_radioids=
wl_radius_ipaddr=
wl_radius_key=
wl_radius_port=1812
wl_rate=0
wl_rateset=default
wl_rateset_x=1
wl_rts=2347
wl_ssid=WL-HDD
wl_unit=0
wl_wds=
wl_wds_num_x=0
wl_wdsapply_x=1
wl_wdsmode_x=0
wl_wep=off
wl_weptype_x=0
wl_wpa_gtk_rekey=0
wl_wpa_psk=
wlp_beap_x=1
wlp_clientmode_x=1
wlp_num=0
wlp_pref_x=99

Asus WL-500g

Just got two Asus WL-500g!

dmesg:

CPU revision is: 00024000
Enabling BCM4710A0 cache workarounds.
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, linesize 16 bytes.
Linux version 2.4.30 (wbx@ux-2y01) (gcc version 3.4.4) #1 Wed Sep 14 17:49:26 CEST 2005
Setting the PFC value as 0x15
Determined physical RAM map:
memory: 01000000 @ 00000000 (usable)
On node 0 totalpages: 4096
zone(0): 4096 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
CPU: BCM4710 rev 0 at 125 MHz
Using 62.400 MHz high precision timer.
!unable to setup serial console!
Calibrating delay loop... 82.94 BogoMIPS
Memory: 14296k/16384k available (1390k kernel code, 2088k reserved, 100k data, 80k init, 0k highmem)
Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
Checking for 'wait' instruction... unavailable.
POSIX conformance testing by UNIFIX
PCI: Fixing up bus 0
PCI: Fixing up bridge
PCI: Setting latency timer of device 01:00.0 to 64
PCI: Fixing up bus 1
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch ([email protected])
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
Squashfs 2.1-r2 (released 2004/12/15) (C) 2002-2004 Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
Software Watchdog Timer: 0.05, timer margin: 60 sec
Amd/Fujitsu Extended Query Table v1.1 at 0x0040
Physically mapped flash: Swapping erase regions for broken CFI table.
number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Flash device: 0x400000 at 0x1fc00000
Creating 5 MTD partitions on "Physically mapped flash":
0x00000000-0x00040000 : "pmon"
0x00040000-0x003f0000 : "linux"
0x000ba4b0-0x001c0000 : "rootfs"
mtd: partition "rootfs" doesn't start on an erase block boundary -- force read-only
0x003f0000-0x00400000 : "nvram"
0x001c0000-0x003f0000 : "OpenWrt"
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 1024 bind 2048)
ip_conntrack version 2.1 (5953 buckets, 5953 max) - 320 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear
All bugs added by David S. Miller
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 80k freed
Warning: unable to open an initial console.
Algorithmics/MIPS FPU Emulator v1.5
diag boardtype: 0000041a
jffs2.bbc: SIZE compression mode activated.
PCI: Setting latency timer of device 00:02.0 to 64
eth0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3.90.23.0
PCI: Setting latency timer of device 00:08.0 to 64
eth1: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3.90.23.0
PCI: Setting latency timer of device 01:02.0 to 64
PCI: Enabling device 01:02.0 (0004 -> 0006)
eth2: Broadcom BCM4320 802.11 Wireless Controller 3.90.37.0
Universal TUN/TAP device driver 1.5 (C)1999-2002 Maxim Krasnyansky
device eth0 entered promiscuous mode

eth0 – LAN
eth1 – WAN
eth2 – WLAN

Bad news on Linksys WRT54g v5

WRT54gG v5 does not work with custom firmares! 🙁

I think this is a bad move from Linksys/Cisco as most of the pieces sold were used with custom firware.
Need to use other wireless routers, such as Asus, Netgear.

Some alternatives in my wiki.

Linux on WRT54GS

CPU revision is: 00029007
Primary instruction cache 8kB, physically tagged, 2-way, linesize 16 bytes.
Primary data cache 4kB, 2-way, linesize 16 bytes.
Linux version 2.4.30 (wbx@ux-2y01) (gcc version 3.4.4) #1 Wed Sep 14 17:49:26 CEST 2005
Setting the PFC value as 0x15
Determined physical RAM map:
memory: 02000000 @ 00000000 (usable)
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/mtdblock2 rootfstype=squashfs,jffs2 init=/etc/preinit noinitrd console=ttyS0,115200
CPU: BCM4712 rev 2 at 200 MHz
Using 100.000 MHz high precision timer.
Calibrating delay loop… 199.47 BogoMIPS
Memory: 30504k/32768k available (1390k kernel code, 2264k reserved, 100k data, 80k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
Checking for ‘wait’ instruction… unavailable.
POSIX conformance testing by UNIFIX
PCI: Disabled
PCI: Fixing up bus 0
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch ([email protected])
devfs: boot_options: 0x1
JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
Squashfs 2.1-r2 (released 2004/12/15) (C) 2002-2004 Phillip Lougher
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0xb8000300 (irq = 3) is a 16550A
ttyS01 at 0xb8000400 (irq = 0) is a 16550A
Software Watchdog Timer: 0.05, timer margin: 60 sec
Physically mapped flash: Found an alias at 0x800000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1000000 for the chip at 0x0
Physically mapped flash: Found an alias at 0x1800000 for the chip at 0x0
cfi_cmdset_0001: Erase suspend on write enabled
0: offset=0x0,size=0x20000,blocks=64
Using buffer write method
Flash device: 0x800000 at 0x1c000000
Creating 5 MTD partitions on “Physically mapped flash”:
0x00000000-0x00040000 : “pmon”
0x00040000-0x007e0000 : “linux”
0x000ba4b0-0x001c0000 : “rootfs”
mtd: partition “rootfs” doesn’t start on an erase block boundary — force read-only
0x007e0000-0x00800000 : “nvram”
0x001c0000-0x007e0000 : “OpenWrt”
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
ip_conntrack version 2.1 (5953 buckets, 5953 max) – 320 bytes per conntrack
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Ethernet Bridge 008 for NET4.0
802.1Q VLAN Support v1.8 Ben Greear
All bugs added by David S. Miller
VFS: Mounted root (squashfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 80k freed
Algorithmics/MIPS FPU Emulator v1.5
diag boardtype: 00000708
jffs2.bbc: SIZE compression mode activated.
PCI: Setting latency timer of device 00:02.0 to 64
eth0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3.90.23.0
PCI: Setting latency timer of device 00:01.0 to 64
eth1: Broadcom BCM4320 802.11 Wireless Controller 3.90.37.0
device eth0 entered promiscuous mode
vlan0: add 01:00:5e:00:00:01 mcast address to master interface
device eth1 entered promiscuous mode
br0: port 2(eth1) entering learning state
br0: port 1(vlan0) entering learning state
br0: port 2(eth1) entering forwarding state
br0: topology change detected, propagating
br0: port 1(vlan0) entering forwarding state
br0: topology change detected, propagating
vlan1: add 01:00:5e:00:00:01 mcast address to master interface

~# ipkg list_installed
base-files – 2 – OpenWrt filesystem structure and scripts
base-files-brcm – 1 – Board/architecture specific files
bridge – 1.0.6-1 – Ethernet bridging tools
busybox – 1.00-2 – Core utilities for embedded Linux systems
bwm – 1.1.0-1 – A very tiny bandwidth monitor
dnsmasq – 2.22-2 – A lightweight DNS and DHCP server
dropbear – 0.45-3 – a small SSH 2 server/client designed for small memory environments.
hotplug – 2 – Hotplug script for WDS
ip – 2.6.11-050330-1 – iproute2 routing control utility
ipkg – 0.99.149-2 – lightweight package management system
iptables – 1.3.1-1 – The netfilter firewalling software for IPv4
kernel – 2.4.30-brcm-2 –
kmod-brcm-et – 2.4.30-brcm-2 – Proprietary driver for Broadcom Ethernet chipsets
kmod-brcm-wl – 2.4.30-brcm-2 – Proprietary driver for Broadcom Wireless chipsets
kmod-diag – 2.4.30-brcm-2 – Driver for Router LEDs and Buttons
kmod-ppp – 2.4.30-brcm-2 – PPP support
kmod-pppoe – 2.4.30-brcm-2 – PPP over Ethernet support
kmod-sched – 2.4.30-brcm-2 – Kernel schedulers for IP traffic
kmod-tun – 2.4.30-brcm-2 – Kernel TUN/TAP extension
kmod-wlcompat – 2.4.30-brcm-3 – Compatibility module for using the Wireless Extension with broadcom’s wl
libgcc – 3.4.4-2 – GCC support library
liblzo – 1.08-1 – a real-time data compression library
libopenssl – 0.9.7g-1 – OpenSSL (Secure Socket Layer) libraries
mtd – 2 – Tool for modifying the flash chip
nvram – 1 – NVRAM utility and libraries for Broadcom hardware
openvpn – 2.0.2-1 – Open Source VPN solution using SSL
ppp – 2.4.3-6 – a PPP (Point-to-Point Protocol) daemon (with MPPE/MPPC support)
ppp-mod-pppoe – 2.4.3-6 – a PPPoE (PPP over Ethernet) plugin for PPP
tc – 2.6.11-050330-1 – iproute2 traffic control utility
uclibc – 0.9.27-2 – Standard C library for embedded Linux systems
wificonf – 4 – Replacement utility for wlconf
wireless-tools – 28.pre7-1 – Tools for setting up WiFi cards using the Wireless Extension
wl – 3.90.37-1 – Proprietary Broadcom utility for setting wireless driver parameters
zlib – 1.2.2-2 – an implementation of the deflate compression method (library)
Successfully terminated.

~# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 1088 1088 0 100% /rom
/dev/mtdblock/4 6272 1740 4532 28% /
none 15292 16 15276 0% /tmp

~# mount
/dev/root on /rom type squashfs (ro)
none on /rom/dev type devfs (rw)
/dev/mtdblock/4 on / type jffs2 (rw)
none on /proc type proc (rw)
none on /dev type devfs (rw)
none on /tmp type tmpfs (rw,nosuid,nodev)
none on /dev/pts type devpts (rw)

# nvram show|sort|less
size: 8773 bytes (23995 left)

Intel_firmware_version=v1.41.8
QoS=0
aa0=3
action_service=
action_service_arg1=
ag0=255
aol_block_traffic1=0
aol_block_traffic2=0
aol_block_traffic=0
artemis_GLOB=
artemis_HB_DB=
artemis_NOS_CTR=
artemis_SVCGLOB=
artemis_enable=0
artemis_provisioned=0
autofw_port0=
bcm4712_firmware_version=v1.50.0
block_activex=0
block_cookie=0
block_java=0
block_loopback=0
block_proxy=0
block_wan=1
boardflags2=0
boardflags=0x0318
boardnum=42
boardrev=0x10
boardtype=0x0708
boot_ver=v3.4
boot_wait=on
bootnv_ver=3
ccode=0
cctl=0
clkfreq=200
console_loglevel=1
ct_modules=
d11g_bcn=100
d11g_channel=11
d11g_dtim=1
d11g_frag=2346
d11g_mode=6
d11g_rate=0
d11g_rateset=default
d11g_rts=2347
daylight_time=1
ddns_cache=
ddns_change=
ddns_enable=0
ddns_enable_buf=
ddns_hostname=
ddns_hostname_2=
ddns_hostname_buf=
ddns_interval=60
ddns_passwd=
ddns_passwd_2=
ddns_passwd_buf=
ddns_status=
ddns_username=
ddns_username_2=
ddns_username_buf=
def_hwaddr=00:00:00:00:00:00
dhcp_domain=wan
dhcp_lease=0
dhcp_num=50
dhcp_start=100
dhcp_wins=wan
dl_ram_addr=a0001000
dmz_enable=0
dmz_ipaddr=0
dr_lan_rx=0
dr_lan_tx=0
dr_setting=0
dr_wan_rx=0
dr_wan_tx=0
eou_configured=0
eou_device_id=Y5APV7SX
eou_expired_hour=72
eou_key_index=1
eou_private_key=164bbb3446446414d4608d8cc608328378e74292704b0d1c95d02afde77429013a0bcd3e2a19859dd37d63fdb000022bdc7b7d718477488d0bab9fa67fa5a81d6dc9356792a96774736c23d9e7957619eec7cbb63f7c11b8be22c6c5757c28859d4a3bd2b187163f1c128418fbc79c82a39b4bc41962b2bfb343491fdce76651
eou_public_key=bd83b73c554552b10d34b32c9345ad5d83adb5dcba7def72f9696d6e2f5b5c8a6d64509065d8efbd85a9d1ec58001274d219aa44e5f5e8aee332cd073d0014fbe15a9f256bc2ddcf2a3085a994281640c96aca31c35e8b79b470161ee9cbfdf22f7602beba83e177d9a16eaee83414b88434352a838165c89105f105ae34e27f11
et0macaddr=00:14:BF:36:F4:2A
et0mdcport=0
et0phyaddr=30
ezc_enable=1
ezc_version=2
filter=on
filter_client0=
filter_dport_grp10=
filter_dport_grp1=
filter_dport_grp2=
filter_dport_grp3=
filter_dport_grp4=
filter_dport_grp5=
filter_dport_grp6=
filter_dport_grp7=
filter_dport_grp8=
filter_dport_grp9=
filter_id=1
filter_ip_grp10=
filter_ip_grp1=
filter_ip_grp2=
filter_ip_grp3=
filter_ip_grp4=
filter_ip_grp5=
filter_ip_grp6=
filter_ip_grp7=
filter_ip_grp8=
filter_ip_grp9=
filter_mac_grp10=
filter_mac_grp1=
filter_mac_grp2=
filter_mac_grp3=
filter_mac_grp4=
filter_mac_grp5=
filter_mac_grp6=
filter_mac_grp7=
filter_mac_grp8=
filter_mac_grp9=
filter_maclist=
filter_macmode=deny
filter_port=
filter_port_grp10=
filter_port_grp1=
filter_port_grp2=
filter_port_grp3=
filter_port_grp4=
filter_port_grp5=
filter_port_grp6=
filter_port_grp7=
filter_port_grp8=
filter_port_grp9=
filter_rule10=
filter_rule1=
filter_rule2=
filter_rule3=
filter_rule4=
filter_rule5=
filter_rule6=
filter_rule7=
filter_rule8=
filter_rule9=
filter_services=$NAME:003:DNS$PROT:003:udp$PORT:005:53:53<  >$NAME:004:Ping$PROT:004:icmp$PORT:003:0:0<  >$NAME:004:HTTP$PROT:003:tcp$PORT:005:80:80<  >$NAME:005:HTTPS$PROT:003:tcp$PORT:007:443:443<  >$NAME:003:FTP$PROT:003:tcp$PORT:005:21:21<  >$NAME:004:POP3$PROT:003:tcp$PORT:007:110:110<  >$NAME:004:IMAP$PROT:003:tcp$PORT:007:143:143<  >$NAME:004:SMTP$PROT:003:tcp$PORT:005:25:25<  >$NAME:004:NNTP$PROT:003:tcp$PORT:007:119:119<  >$NAME:006:Telnet$PROT:003:tcp$PORT:005:23:23<  >$NAME:004:SNMP$PROT:003:udp$PORT:007:161:161<  >$NAME:004:TFTP$PROT:003:udp$PORT:005:69:69<  >$NAME:003:IKE$PROT:003:udp$PORT:007:500:500<  >
filter_tod10=
filter_tod1=
filter_tod2=
filter_tod3=
filter_tod4=
filter_tod5=
filter_tod6=
filter_tod7=
filter_tod8=
filter_tod9=
filter_tod_buf10=
filter_tod_buf1=
filter_tod_buf2=
filter_tod_buf3=
filter_tod_buf4=
filter_tod_buf5=
filter_tod_buf6=
filter_tod_buf7=
filter_tod_buf8=
filter_tod_buf9=
filter_web_host10=
filter_web_host1=
filter_web_host2=
filter_web_host3=
filter_web_host4=
filter_web_host5=
filter_web_host6=
filter_web_host7=
filter_web_host8=
filter_web_host9=
filter_web_url10=
filter_web_url1=
filter_web_url2=
filter_web_url3=
filter_web_url4=
filter_web_url5=
filter_web_url6=
filter_web_url7=
filter_web_url8=
filter_web_url9=
firmware_version=v3.37.2
flash_type=Intel 28F640J3 4Mx16
forward_port=
fw_disable=0
gpio5=robo_reset
hb_server_domain=
hb_server_ip=
http_client_ip=192.168.1.100
http_client_mac=00:08:02:E4:B3:06
http_enable=1
http_lanport=80
http_method=post
http_passwd=admin
http_username=
http_wanport=8080
https_enable=0
ident_pass=0
il0macaddr=00:14:bf:36:f4:2c
ipsec_pass=1
is_default=1
is_modified=0
l2tp_get_ip=
l2tp_pass=1
l2tp_server_ip=
lan_domain=
lan_hwaddr=
lan_hwnames=
lan_ifname=br0
lan_ifnames=vlan0 eth1 eth2 eth3
lan_ipaddr=192.168.1.1
lan_lease=86400
lan_netmask=255.255.255.0
lan_proto=static
lan_stp=0
lan_wins=
log_enable=0
log_ipaddr=0
log_level=0
mac_clone_enable=0
manual_rate=0
mtu_enable=0
multicast_pass=0
ntp_mode=auto
ntp_server=
os_date=Nov 25 2004
os_flash_addr=bfc40000
os_name=linux
os_ram_addr=80001000
os_server=
os_version=3.61.13.0
pa0b0=0x15eb
pa0b1=0xfa82
pa0b2=0xfe66
pa0itssit=62
pa0maxpwr=0x4e
ping_ip=
ping_times=
pmon_ver=CFE 3.61.13.0
port_flow_control_1=1
port_flow_control_2=1
port_flow_control_3=1
port_flow_control_4=1
port_priority_1=0
port_priority_2=0
port_priority_3=0
port_priority_4=0
port_rate_limit_1=0
port_rate_limit_2=0
port_rate_limit_3=0
port_rate_limit_4=0
port_trigger=
ppp_ac=
ppp_demand=1
ppp_get_ac=
ppp_get_srv=
ppp_idletime=5
ppp_keepalive=0
ppp_mru=1500
ppp_mtu=1500
ppp_passwd=
ppp_redialperiod=30
ppp_service=
ppp_static=0
ppp_static_ip=
ppp_username=
pppoe_ac=
pppoe_demand=1
pppoe_idletime=5
pppoe_ifname=
pppoe_keepalive=0
pppoe_passwd=
pppoe_service=
pppoe_static=0
pppoe_static_ip=
pppoe_username=
pptp_get_ip=
pptp_pass=1
pptp_server_ip=
qos_appname1=
qos_appname2=
qos_appname3=
qos_appport1=0
qos_appport2=0
qos_appport3=0
qos_devmac1=00:00:00:00:00:00
qos_devmac2=00:00:00:00:00:00
qos_devname1=
qos_devname2=
qos_devpri1=0
qos_devpri2=0
rate_mode=1
remote_management=0
remote_mgt_https=0
restore_defaults=0
router_disable=0
router_name=WRT54GS
scratch=a0180000
sdram_config=0x0062
sdram_init=0x010b
sdram_ncdl=0xfeff09
sdram_refresh=0x0000
security_mode=disabled
security_mode_last=
sel_qosftp=0
sel_qoshttp=0
sel_qospop3=0
sel_qosport1=0
sel_qosport2=0
sel_qosport3=0
sel_qossmtp=0
sel_qostelnet=0
skip_amd_check=0
skip_intel_check=0
sromrev=2
static_route=
static_route_name=
stats_server=
time_zone=-08 1 1
timer_interval=3600
traceroute_ip=
upnp_enable=1
upnp_wan_proto=
vlan0hwname=et0
vlan0ports=1 2 3 4 5*
vlan1hwname=et0
vlan1ports=0 5
wan_dns=
wan_domain=
wan_gateway=0.0.0.0
wan_gateway_buf=0.0.0.0
wan_get_dns=
wan_get_domain=
wan_hostname=
wan_hwaddr=
wan_hwname=
wan_iface=vlan1
wan_ifname=vlan1
wan_ifnames=vlan1
wan_ipaddr=0.0.0.0
wan_ipaddr_buf=0.0.0.0
wan_lease=86400
wan_mtu=1500
wan_netmask=0.0.0.0
wan_primary=1
wan_proto=dhcp
wan_run_mtu=1500
wan_unit=0
wan_wins=
watchdog=5000
web_wl_filter=0
wk_mode=gateway
wl0_active_mac=
wl0_afterburner=auto
wl0_antdiv=-1
wl0_ap_ip=
wl0_ap_isolate=0
wl0_ap_ssid=
wl0_auth=0
wl0_auth_mode=open
wl0_bcn=100
wl0_channel=11
wl0_closed=0
wl0_corerev=7
wl0_country=Worldwide
wl0_country_code=AU
wl0_crypto=tkip
wl0_dtim=1
wl0_frag=2346
wl0_frameburst=on
wl0_gmode=6
wl0_gmode_protection=off
wl0_hwaddr=
wl0_ifname=eth1
wl0_infra=1
wl0_key1=
wl0_key2=
wl0_key3=
wl0_key4=
wl0_key=1
wl0_lazywds=1
wl0_mac_deny=
wl0_mac_list=
wl0_maclist=
wl0_macmode1=disabled
wl0_macmode=disabled
wl0_mode=ap
wl0_mrate=0
wl0_net_mode=mixed
wl0_passphrase=
wl0_phytype=g
wl0_phytypes=g
wl0_plcphdr=long
wl0_radio=1
wl0_radioids=BCM2050
wl0_radius_ipaddr=
wl0_radius_key=
wl0_radius_port=1812
wl0_rate=0
wl0_rateset=default
wl0_rts=2347
wl0_ssid=linksys
wl0_unit=0
wl0_wds=
wl0_wep=disabled
wl0_wep_bit=64
wl0_wep_buf=
wl0_wep_gen=
wl0_wep_last=
wl0_wpa_gtk_rekey=3600
wl0_wpa_psk=
wl0gpio2=0
wl0gpio3=0
wl0id=0x4320
wl_active_add_mac=0
wl_active_mac=
wl_afterburner=auto
wl_antdiv=-1
wl_ap_ip=
wl_ap_isolate=0
wl_ap_ssid=
wl_atten_bb=3
wl_atten_ctl=48
wl_atten_radio=4
wl_auth=0
wl_auth_mode=open
wl_bcn=100
wl_cck= 10
wl_channel=11
wl_closed=0
wl_corerev=
wl_country=Worldwide
wl_country_code=AU
wl_crypto=tkip
wl_delay=1
wl_dtim=1
wl_frag=2346
wl_frameburst=on
wl_gmode=6
wl_gmode_protection=off
wl_hwaddr=
wl_ifname=
wl_infra=1
wl_key1=
wl_key2=
wl_key3=
wl_key4=
wl_key=1
wl_lazywds=1
wl_mac_deny=
wl_mac_list=
wl_maclist=
wl_macmode1=disabled
wl_macmode=disabled
wl_mode=ap
wl_mrate=0
wl_net_mode=mixed
wl_ofdm= 0
wl_passphrase=
wl_phytype=g
wl_phytypes=
wl_plcphdr=long
wl_radio=1
wl_radioids=
wl_radius_ipaddr=
wl_radius_key=
wl_radius_port=1812
wl_rate=0
wl_rateset=default
wl_rts=2347
wl_ssid=linksys
wl_tssi_result= 10
wl_unit=0
wl_wds=
wl_wep=disabled
wl_wep_bit=64
wl_wep_buf=
wl_wep_gen=
wl_wep_last=
wl_wpa_gtk_rekey=3600
wl_wpa_psk=

~# ps auxw
PID Uid VmSize Stat Command
1 root 392 S init
2 root SW [keventd]
3 root SWN [ksoftirqd_CPU0]
4 root SW [kswapd]
5 root SW [bdflush]
6 root SW [kupdated]
7 root SW [mtdblockd]
24 root SWN [jffs2_gcd_mtd4]
41 root 380 S syslogd -C 16
42 root 348 S klogd
47 root 392 S init
369 root 404 S udhcpc -i vlan1 -r 0.0.0.0 -b -p /var/run/vlan1.pid -R
404 nobody 400 S dnsmasq -l /tmp/dhcp.leases -K -F 192.168.1.100,192.168.1.150,255.255.255.0,12h -I vlan1
411 root 420 S /usr/sbin/dropbear
412 root 392 S httpd -p 80 -h /www -r WRT54G Router
418 root 324 S telnetd -l /bin/login
771 root 644 S /usr/sbin/dropbear
772 root 468 S -ash

Linksys WRT54GS

Waiting for a Linksys WRT54GS! I can’t wait to try linux on that device after the pleasant experience with WRT54G…