Linux on Auerswald Commander Basic 2 » History » Revision 8
Revision 7 (laforge, 01/08/2020 12:30 PM) → Revision 8/10 (laforge, 01/08/2020 01:10 PM)
{{>toc}}
h1. Linux on Auerswald COMmander Basic2
This page is an attempt to document bits and pieces about the embedded Linux OS that runs on the [[Auerswald COMmander Basic2]] PBX.
More speificially, it's an ARM/Linux based system running on a "Digi International NS9360":http://ftp1.digi.com/support/documentation/91001326_D.pdf ARM926 SoC built from PTXdist-0.7.5
h2. Source Code
* the PTXdist 0.7.5 source code can be found at https://public.pengutronix.de/software/ptxdist/v0.7/
* Auerswald has released _GPL tarballs_ at http://data-1.auerswald.de/license/gpl/COMfortel_VoIP_250_DECT1040_COMfortel2500/2015/GPL_COMfortel_VoIP_250_DECT1040_VoIP_2500_150415.iso
h2. Serial Console
The ARM SoC has a serial console (ttyS2) at 3.3V. It is running at 19200 bps and is exposed on test pads near the NS9630 on the PBX mainboard.
h3. Pinout
FIXME
h2. u-boot
h3. u-boot bootlog
<pre>
YABOL 1.3 (11:21:24Jan 17 2007)
hardware version: 01
checking for image mode...on... no
loading binary from NAND
binary loaded, starting...
U-Boot 1.1.2 (Aug 7 2006 - 08:23:30) FS.1-gds3.1
U-Boot code: 00F80000 -> 00F9D148 BSS: -> 00FA83DC
IRQ Stack: 00f5fb7c
FIQ Stack: 00f5eb7c
SDRAM-Size: 2000000 hex
RAM Configuration:
Bank #0: 00000000 32 MB
NAND: 64 MB
Init NAND-FLASH ....
Using default environment
In: serial
Out: serial
Err: serial
Board revision 1 found
serial: 2448900276AU0123103800820H
ethaddr: 00:09:52:00:d1:7f
ccode: 0
reserve:
Checking for factory reset... no
Looking for boot partition...
reading marker block: ********
Checking Partition 1... OK
Hit any key to stop autoboot: 0
Partition changed to 1
### JFFS2 loading 'boot/bas2boot.1.img' to 0x10000
Scanning JFFS2 FS: ......... done.
### JFFS2 load complete: 456 bytes loaded to 0x10000
## Executing script at 00010000
### JFFS2 loading 'boot/fpga_r1.bin' to 0x10000
### JFFS2 load complete: 75895 bytes loaded to 0x10000
FPGA Version @0x40088000: 11 .
### JFFS2 loading 'boot/uImage' to 0x10000
### JFFS2 load complete: 952212 bytes loaded to 0x10000
## Booting image at 00010000 ...
Image Name: Linux-2.6.11-fs.1-gds9.4
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 952148 Bytes = 929.8 kB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
OK
</pre>
h3. u-boot environment
<pre>
bootargs=console=ttyS1 ip=192.168.0.240::192.168.0.10:255.255.255.0 root=mtdblock/$(bootpart) ro rootfstype=jffs2
bootcmd=chpart $(bootpart);fsload boot/bas2boot.$(board_revision).img;autoscr;chpart $(backuppart);fsload boot/bas2boot.$(board_revision).img;autoscr;booterr 3 4 4
bootdelay=3
baudrate=19200
ipaddr=192.168.0.240
serverip=192.168.0.10
gatewayip=192.168.0.1
netmask=255.255.255.0
bootcmd_error=booterr 1 4 4
bootcmd_install=autoscr;mw.b 1000000 0 100;echo update failed;booterr 1 4 4
stdin=serial
stdout=serial
stderr=serial
board_revision=1
serial=2448900276AU0123103800820H
ethaddr=00:09:52:00:d1:7f
ccode=0
reserve=
bootpart=1
backuppart=2
</pre>
h2. boot script
<pre>
u-boot> fsload boot/bas2boot.1.img
u-boot> md 0x10000 80
00010000: 56190527 233f5c22 ffa86e5c 88010000 '..V"\?#\n......
00010010: 00000000 00000000 1b0005ea 01060205 ................
00010020: 00000000 00000000 00000000 00000000 ................
00010030: 00000000 00000000 00000000 00000000 ................
00010040: 80010000 00000000 6c746573 30206465 ........setled 0
00010050: 0a0a3320 6f6c7366 31206461 30303030 3..fsload 10000
00010060: 6f6f6220 70662f74 725f6167 69622e31 boot/fpga_r1.bi
00010070: 70660a6e 6c206167 2064616f 30312030 n.fpga load 0 10
00010080: 20303030 69662824 6973656c 0a29657a 000 $(filesize).
00010090: 6f686365 47504620 65562041 6f697372 echo FPGA Versio
000100a0: 3040206e 635c5c78 2e646d0a 30342062 n @0x\\c.md.b 40
000100b0: 30383830 31203030 65730a0a 766e6574 088000 1..setenv
000100c0: 6f6f6220 67726174 73616273 63206369 bootargsbasic c
000100d0: 6f736e6f 743d656c 32537974 3239312c onsole=ttyS2,192
000100e0: 75203030 5f726573 75626564 35323d67 00 user_debug=25
000100f0: 65730a35 766e6574 6f6f6220 67726174 5.setenv bootarg
00010100: 64746d73 6f6f7220 746d3d74 6f6c6264 smtd root=mtdblo
00010110: 242f6b63 72617028 69746974 20296e6f ck/$(partition)
00010120: 72206f72 66746f6f 70797473 666a3d65 ro rootfstype=jf
00010130: 20327366 61687465 3d726464 74652824 fs2 ethaddr=$(et
00010140: 64646168 63202972 65646f63 6328243d haddr) ccode=$(c
00010150: 65646f63 65732029 6c616972 7328243d code) serial=$(s
00010160: 61697265 730a296c 6e657465 6f622076 erial).setenv bo
00010170: 7261746f 24207367 6f6f6228 67726174 otargs $(bootarg
00010180: 73616273 20296369 6f622824 7261746f sbasic) $(bootar
00010190: 746d7367 0a0a2964 6f6c7366 31206461 gsmtd)..fsload 1
000101a0: 30303030 6f6f6220 49752f74 6567616d 0000 boot/uImage
000101b0: 7465730a 2064656c 0a322030 746f6f62 .setled 0 2.boot
000101c0: 3031206d 0a303030 5a2cf071 6b6b6b6b m 10000.q.,Zkkkk
</pre>
h3. modified bootscript to get root shell
<pre>
u-boot> setled 0 3
u-boot> fsload 10000 boot/fpga_r1.bin
### JFFS2 loading 'boot/fpga_r1.bin' to 0x10000
### JFFS2 load complete: 75895 bytes loaded to 0x10000
u-boot> fpga load 0 10000 $(filesize)
u-boot> setenv bootargsbasic console=ttyS2,19200 user_debug=255 init=/bin/sh
u-boot> setenv bootargsmtd root=mtdblock/1 ro rootfstype=jffs2 ethaddr=$(ethaddr) ccode=$(ccode) serial=$(serial)
u-boot> setenv bootargs $(bootargsbasic) $(bootargsmtd)
u-boot> fsload 10000 boot/uImage
### JFFS2 loading 'boot/uImage' to 0x10000
### JFFS2 load complete: 952212 bytes loaded to 0x10000
u-boot> setled 0 2
u-boot> bootm 10000
</pre>
h2. kernel
h3. kernel bootlog
<pre>
Starting kernel ...
Uncompressing Linux............................................................... done, booting the kernel.
Linux version 2.6.11-fs.1-gds9.4 (build@build) (gcc version 3.4.2) #375 Fri Mar 5 09:55:24 CET 2010
CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv5TEJ)
CPU0: D VIVT write-back cache
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
CPU0: D cache: 4096 bytes, associativity 4, 32 byte lines, 32 sets
Machine: A9M9360
Memory policy: ECC disabled, Data cache writeback
NS9360 Rev. 0, running at 154 MHz
Built 1 zonelists
Kernel command line: console=ttyS2,19200 user_debug=255 root=mtdblock/1 ro rootfstype=jffs2 ethaddr=00:09:52:00:d1:7f ccode=0 serial=2448900276AU0123103800820H
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 32MB = 32MB total
Memory: 30352KB available (1602K code, 332K data, 80K init)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
NET: Registered protocol family 16
i2c_ns: I2C ns9750 driver $Revision: 1.5 $ initializing
NetWinder Floating Point Emulator V0.97 (double precision)
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
JFFS2 version 2.2. (NAND) (SAFENAND) (SUMMARY) (C) 2001-2006 Red Hat, Inc.
NS9750 Watchdog initialized
Serial: NS9750 driver $Revision: 1.6 $
ttyS0 at MMIO 0xf9200000 (irq = 34) is a NS9xx0
ttyS1 at MMIO 0xf9200040 (irq = 36) is a NS9xx0
ttyS2 at MMIO 0xf9300000 (irq = 38) is a NS9xx0
ttyS3 at MMIO 0xf9300040 (irq = 40) is a NS9xx0
Serial: JTAG driver $Revision: 1.1 $
ttyJ0 at MMIO 0x0 (irq = 0) is a JTAGCOMM
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
loop: loaded (max 8 devices)
Ethernet: NS9xx0 driver $Revision: 1.13.cbr $
NAND Flash memory mapped to virtual c2880000
NAND device: Manufacturer ID: 0x98, Chip ID: 0x76 (Toshiba NAND 64MiB 3,3V 8-bit)
Scanning device for bad blocks
Using static partition definition
Creating 5 MTD partitions on "basic.2":
0x00000000-0x00038000 : "U-BOOT"
0x00040000-0x01020000 : "System_1"
0x01020000-0x02000000 : "System_2"
0x02000000-0x04000000 : "Daten"
0x00038000-0x00040000 : "Service"
NS9360 udc driver
ns9360-udc ns9360-udc0: gadget driver initializing
i2c /dev entries driver
24c64: EEPROM driver $Revision: 1.1 $ initializing
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
NET: Registered protocol family 1
Root-NFS: No NFS server available, giving up.
VFS: Unable to mount root fs via NFS, trying floppy.
VFS: Mounted root (jffs2 filesystem) readonly.
Mounted devfs on /dev
Freeing init memory: 80K
PTXdist-0.7.5 (2005-11-23T10:35:05+0100)
mounting /proc and /sys... done.
mounting filesystems... mount: WARNING: loop device is read-only
done.
preparing /data ...done.
basic system configuration... done.
starting the system logger... done.
starting network... [HWaddr: 00:09:52:00:d1:7f]
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/packet/af_packet.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ip_conntrack.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ip_tables.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/iptable_filter.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/iptable_nat.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
killall: vd: no process killed
killall: vmd: no process killed
done.
starting USB network port ...
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/usb/gadget/g_ether.ko
killall: udhcpd: no process killed
udhcpd (v0.9.9-pre) started
done.
starting ppp... Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/slhc.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/ppp_generic.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/ppp_synctty.ko
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/char/n_hdlc.ko
done.
mounting nfs filesystems... done.
reading the hardware clock...
Using /opt/auerswald/modules/auerrtc.ko
hwclock: Could not read time from RTC: Input/output error
date is invalid, setting default date
Tue May 1 00:00:00 CEST 2001
hwclock: Could not set the RTC time: Input/output error
starting network services... done.
Using /opt/auerswald/modules/auerlog.ko
Using /opt/auerswald/modules/hwtimer.ko
Using /opt/auerswald/modules/auertim.ko
Using /opt/auerswald/modules/auergb.ko
Using /opt/auerswald/modules/auermod.ko
Using /opt/auerswald/modules/isdnhdlc.ko
Using /opt/auerswald/modules/auerdsp.ko
Using /opt/auerswald/modules/auersicofi4.ko
Using /opt/auerswald/modules/auertdm.ko
Using /opt/auerswald/modules/auerab_all.ko
Using /opt/auerswald/modules/auers0basic.ko
Using /opt/auerswald/modules/auer4s0.ko
Using /opt/auerswald/modules/auer8up0.ko
Using /opt/auerswald/modules/auers2m.ko
Using /opt/auerswald/modules/auertsm_all.ko
Using /opt/auerswald/modules/auertoene.ko
Using /opt/auerswald/modules/auer_sscp.ko
Using /opt/auerswald/modules/auers0_hfc8s4s.ko
Using /opt/auerswald/modules/auer_voip.ko
</pre>
h2. Useful hints
h3. Activationg telnet/nfs server, NFS client
There's a file @/data/etc/network.conf@
<pre>
telnet-server: no
ftp-server: no
nfs-server: no
# nfs-mount: <host>:<path> <mountpoint>
dhcp-name: COMmander_Basic.2
</pre>
If you change the settings, you can enable telnet/nfs servers on the PBX itself (ftp binary is missing), or you can instruct it to mount a network share from a NFS server. Those settings are processed by the init scripts.
The default NFS exports of the server in the PBX look like this:
<pre>
/ 192.168.21.0/24(sync,no_root_squash,rw)
/data 192.168.21.0/24(sync,no_root_squash,rw)
</pre>