Project

General

Profile

Linux on Auerswald Commander Basic 2 » History » Version 8

laforge, 01/08/2020 01:10 PM

1 1 laforge
{{>toc}}
2
3
h1. Linux on Auerswald COMmander Basic2
4
5 2 laforge
This page is an attempt to document bits and pieces about the embedded Linux OS that runs on the [[Auerswald COMmander Basic2]] PBX. 
6
7
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 
8 1 laforge
9 3 laforge
h2. Source Code
10
11
* the PTXdist 0.7.5 source code can be found at https://public.pengutronix.de/software/ptxdist/v0.7/
12
* 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
13
14 1 laforge
h2. Serial Console
15
16 4 laforge
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.
17 3 laforge
18 1 laforge
h3. Pinout
19 3 laforge
20
FIXME
21 1 laforge
22 6 laforge
h2. u-boot
23
24 1 laforge
h3. u-boot bootlog
25
26
<pre>
27
YABOL 1.3 (11:21:24Jan 17 2007)
28
hardware version: 01
29
checking for image mode...on... no
30
loading binary from NAND
31
binary loaded, starting...
32
33
34
U-Boot 1.1.2 (Aug  7 2006 - 08:23:30) FS.1-gds3.1
35
36
U-Boot code: 00F80000 -> 00F9D148  BSS: -> 00FA83DC
37
IRQ Stack: 00f5fb7c
38
FIQ Stack: 00f5eb7c
39
SDRAM-Size: 2000000 hex
40
RAM Configuration:
41
Bank #0: 00000000 32 MB
42
NAND:  64 MB
43
Init NAND-FLASH ....
44
Using default environment
45
46
In:    serial
47
Out:   serial
48
Err:   serial
49
50
Board revision 1 found
51
serial: 2448900276AU0123103800820H      
52
ethaddr: 00:09:52:00:d1:7f
53
ccode: 0
54
reserve:                                 
55
Checking for factory reset... no
56
Looking for boot partition...
57
reading marker block: ********
58
Checking Partition 1... OK
59
Hit any key to stop autoboot:  0 
60
Partition changed to 1
61
### JFFS2 loading 'boot/bas2boot.1.img' to 0x10000
62
Scanning JFFS2 FS: ......... done.
63
### JFFS2 load complete: 456 bytes loaded to 0x10000
64
## Executing script at 00010000
65
### JFFS2 loading 'boot/fpga_r1.bin' to 0x10000
66
### JFFS2 load complete: 75895 bytes loaded to 0x10000
67
68
FPGA Version @0x40088000: 11    .
69
### JFFS2 loading 'boot/uImage' to 0x10000
70
### JFFS2 load complete: 952212 bytes loaded to 0x10000
71
## Booting image at 00010000 ...
72
   Image Name:   Linux-2.6.11-fs.1-gds9.4
73
   Image Type:   ARM Linux Kernel Image (uncompressed)
74
   Data Size:    952148 Bytes = 929.8 kB
75
   Load Address: 00008000
76
   Entry Point:  00008000
77
   Verifying Checksum ... OK
78
OK
79
</pre>
80
81 5 laforge
h3. u-boot environment
82
83
<pre>
84
bootargs=console=ttyS1 ip=192.168.0.240::192.168.0.10:255.255.255.0 root=mtdblock/$(bootpart) ro rootfstype=jffs2
85
bootcmd=chpart $(bootpart);fsload boot/bas2boot.$(board_revision).img;autoscr;chpart $(backuppart);fsload boot/bas2boot.$(board_revision).img;autoscr;booterr 3 4 4
86
bootdelay=3
87
baudrate=19200
88
ipaddr=192.168.0.240
89
serverip=192.168.0.10
90
gatewayip=192.168.0.1
91
netmask=255.255.255.0
92
bootcmd_error=booterr 1 4 4
93
bootcmd_install=autoscr;mw.b 1000000 0 100;echo update failed;booterr 1 4 4
94
stdin=serial
95
stdout=serial
96
stderr=serial
97
board_revision=1
98
serial=2448900276AU0123103800820H
99
ethaddr=00:09:52:00:d1:7f
100
ccode=0
101
reserve=
102
bootpart=1
103
backuppart=2
104
</pre>
105 6 laforge
106
h2. boot script
107
108
<pre>
109 7 laforge
u-boot> fsload boot/bas2boot.1.img
110
u-boot> md 0x10000 80
111 6 laforge
00010000: 56190527 233f5c22 ffa86e5c 88010000    '..V"\?#\n......
112
00010010: 00000000 00000000 1b0005ea 01060205    ................
113
00010020: 00000000 00000000 00000000 00000000    ................
114
00010030: 00000000 00000000 00000000 00000000    ................
115
00010040: 80010000 00000000 6c746573 30206465    ........setled 0
116
00010050: 0a0a3320 6f6c7366 31206461 30303030     3..fsload 10000
117
00010060: 6f6f6220 70662f74 725f6167 69622e31     boot/fpga_r1.bi
118
00010070: 70660a6e 6c206167 2064616f 30312030    n.fpga load 0 10
119
00010080: 20303030 69662824 6973656c 0a29657a    000 $(filesize).
120
00010090: 6f686365 47504620 65562041 6f697372    echo FPGA Versio
121
000100a0: 3040206e 635c5c78 2e646d0a 30342062    n @0x\\c.md.b 40
122
000100b0: 30383830 31203030 65730a0a 766e6574    088000 1..setenv
123
000100c0: 6f6f6220 67726174 73616273 63206369     bootargsbasic c
124
000100d0: 6f736e6f 743d656c 32537974 3239312c    onsole=ttyS2,192
125
000100e0: 75203030 5f726573 75626564 35323d67    00 user_debug=25
126
000100f0: 65730a35 766e6574 6f6f6220 67726174    5.setenv bootarg
127
00010100: 64746d73 6f6f7220 746d3d74 6f6c6264    smtd root=mtdblo
128
00010110: 242f6b63 72617028 69746974 20296e6f    ck/$(partition) 
129
00010120: 72206f72 66746f6f 70797473 666a3d65    ro rootfstype=jf
130
00010130: 20327366 61687465 3d726464 74652824    fs2 ethaddr=$(et
131
00010140: 64646168 63202972 65646f63 6328243d    haddr) ccode=$(c
132
00010150: 65646f63 65732029 6c616972 7328243d    code) serial=$(s
133
00010160: 61697265 730a296c 6e657465 6f622076    erial).setenv bo
134
00010170: 7261746f 24207367 6f6f6228 67726174    otargs $(bootarg
135
00010180: 73616273 20296369 6f622824 7261746f    sbasic) $(bootar
136
00010190: 746d7367 0a0a2964 6f6c7366 31206461    gsmtd)..fsload 1
137
000101a0: 30303030 6f6f6220 49752f74 6567616d    0000 boot/uImage
138
000101b0: 7465730a 2064656c 0a322030 746f6f62    .setled 0 2.boot
139
000101c0: 3031206d 0a303030 5a2cf071 6b6b6b6b    m 10000.q.,Zkkkk
140
</pre>
141
142 7 laforge
h3. modified bootscript to get root shell
143
144
<pre>
145
u-boot> setled 0 3
146
u-boot> fsload 10000 boot/fpga_r1.bin
147
### JFFS2 loading 'boot/fpga_r1.bin' to 0x10000
148
### JFFS2 load complete: 75895 bytes loaded to 0x10000
149
u-boot> fpga load 0 10000 $(filesize)
150
u-boot> setenv bootargsbasic console=ttyS2,19200 user_debug=255 init=/bin/sh
151
u-boot> setenv bootargsmtd root=mtdblock/1 ro rootfstype=jffs2 ethaddr=$(ethaddr) ccode=$(ccode) serial=$(serial)
152
u-boot> setenv bootargs $(bootargsbasic) $(bootargsmtd)
153
u-boot> fsload 10000 boot/uImage
154
### JFFS2 loading 'boot/uImage' to 0x10000
155
### JFFS2 load complete: 952212 bytes loaded to 0x10000
156
u-boot> setled 0 2
157
u-boot> bootm 10000
158
</pre>
159 6 laforge
160
h2. kernel
161 5 laforge
162 1 laforge
h3. kernel bootlog
163
164
<pre>
165
Starting kernel ...
166
167
Uncompressing Linux............................................................... done, booting the kernel.
168
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
169
CPU: ARM926EJ-Sid(wb) [41069264] revision 4 (ARMv5TEJ)
170
CPU0: D VIVT write-back cache
171
CPU0: I cache: 8192 bytes, associativity 4, 32 byte lines, 64 sets
172
CPU0: D cache: 4096 bytes, associativity 4, 32 byte lines, 32 sets
173
Machine: A9M9360
174
Memory policy: ECC disabled, Data cache writeback
175
NS9360 Rev. 0, running at 154 MHz
176
Built 1 zonelists
177
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
178
PID hash table entries: 256 (order: 8, 4096 bytes)
179
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
180
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
181
Memory: 32MB = 32MB total
182
Memory: 30352KB available (1602K code, 332K data, 80K init)
183
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
184
CPU: Testing write buffer coherency: ok
185
NET: Registered protocol family 16
186
i2c_ns: I2C ns9750 driver $Revision: 1.5 $ initializing
187
NetWinder Floating Point Emulator V0.97 (double precision)
188
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
189
devfs: boot_options: 0x1
190
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
191
JFFS2 version 2.2. (NAND) (SAFENAND) (SUMMARY) (C) 2001-2006 Red Hat, Inc.
192
NS9750 Watchdog initialized
193
Serial: NS9750 driver $Revision: 1.6 $
194
ttyS0 at MMIO 0xf9200000 (irq = 34) is a NS9xx0
195
ttyS1 at MMIO 0xf9200040 (irq = 36) is a NS9xx0
196
ttyS2 at MMIO 0xf9300000 (irq = 38) is a NS9xx0
197
ttyS3 at MMIO 0xf9300040 (irq = 40) is a NS9xx0
198
Serial: JTAG driver $Revision: 1.1 $
199
ttyJ0 at MMIO 0x0 (irq = 0) is a JTAGCOMM
200
io scheduler noop registered
201
io scheduler anticipatory registered
202
io scheduler deadline registered
203
io scheduler cfq registered
204
loop: loaded (max 8 devices)
205
Ethernet: NS9xx0 driver $Revision: 1.13.cbr $
206
NAND Flash memory mapped to virtual c2880000
207
NAND device: Manufacturer ID: 0x98, Chip ID: 0x76 (Toshiba NAND 64MiB 3,3V 8-bit)
208
Scanning device for bad blocks
209
Using static partition definition
210
Creating 5 MTD partitions on "basic.2":
211
0x00000000-0x00038000 : "U-BOOT"
212
0x00040000-0x01020000 : "System_1"
213
0x01020000-0x02000000 : "System_2"
214
0x02000000-0x04000000 : "Daten"
215
0x00038000-0x00040000 : "Service"
216
NS9360 udc driver
217
ns9360-udc ns9360-udc0: gadget driver initializing
218
i2c /dev entries driver
219
24c64: EEPROM driver $Revision: 1.1 $ initializing
220
NET: Registered protocol family 2
221
IP: routing cache hash table of 512 buckets, 4Kbytes
222
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
223
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
224
TCP: Hash tables configured (established 2048 bind 2048)
225
NET: Registered protocol family 1
226
Root-NFS: No NFS server available, giving up.
227
VFS: Unable to mount root fs via NFS, trying floppy.
228
VFS: Mounted root (jffs2 filesystem) readonly.
229
Mounted devfs on /dev
230
Freeing init memory: 80K
231
232
PTXdist-0.7.5 (2005-11-23T10:35:05+0100)
233
234
mounting /proc and /sys... done.
235
mounting filesystems... mount: WARNING: loop device is read-only
236
done.
237
preparing /data ...done.
238
basic system configuration... done.
239
starting the system logger... done.
240
starting network... [HWaddr: 00:09:52:00:d1:7f]
241
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/packet/af_packet.ko
242
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ip_conntrack.ko
243
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ip_tables.ko
244
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/iptable_filter.ko
245
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/iptable_nat.ko
246
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
247
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
248
killall: vd: no process killed
249
killall: vmd: no process killed
250
done.
251
starting USB network port ... 
252
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/usb/gadget/g_ether.ko
253
killall: udhcpd: no process killed
254
udhcpd (v0.9.9-pre) started
255
done.
256
starting ppp... Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/slhc.ko
257
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/ppp_generic.ko
258
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/net/ppp_synctty.ko
259
Using /lib/modules/2.6.11-fs.1-gds9.4/kernel/drivers/char/n_hdlc.ko
260
done.
261
mounting nfs filesystems... done.
262
reading the hardware clock... 
263
Using /opt/auerswald/modules/auerrtc.ko
264
hwclock: Could not read time from RTC: Input/output error
265
date is invalid, setting default date
266
Tue May  1 00:00:00 CEST 2001
267
hwclock: Could not set the RTC time: Input/output error
268
starting network services... done.
269
Using /opt/auerswald/modules/auerlog.ko
270
Using /opt/auerswald/modules/hwtimer.ko
271
Using /opt/auerswald/modules/auertim.ko
272
Using /opt/auerswald/modules/auergb.ko
273
Using /opt/auerswald/modules/auermod.ko
274
Using /opt/auerswald/modules/isdnhdlc.ko
275
Using /opt/auerswald/modules/auerdsp.ko
276
Using /opt/auerswald/modules/auersicofi4.ko
277
Using /opt/auerswald/modules/auertdm.ko
278
Using /opt/auerswald/modules/auerab_all.ko
279
Using /opt/auerswald/modules/auers0basic.ko
280
Using /opt/auerswald/modules/auer4s0.ko
281
Using /opt/auerswald/modules/auer8up0.ko
282
Using /opt/auerswald/modules/auers2m.ko
283
Using /opt/auerswald/modules/auertsm_all.ko
284
Using /opt/auerswald/modules/auertoene.ko
285
Using /opt/auerswald/modules/auer_sscp.ko
286
Using /opt/auerswald/modules/auers0_hfc8s4s.ko
287
Using /opt/auerswald/modules/auer_voip.ko
288
</pre>
289 8 laforge
290
h2. Useful hints
291
292
h3. Activationg telnet/nfs server, NFS client
293
294
There's a file @/data/etc/network.conf@
295
<pre>
296
telnet-server: no
297
ftp-server: no
298
nfs-server: no
299
# nfs-mount: <host>:<path> <mountpoint>
300
dhcp-name: COMmander_Basic.2
301
</pre>
302
303
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.
304
305
The default NFS exports of the server in the PBX look like this:
306
<pre>
307
/ 192.168.21.0/24(sync,no_root_squash,rw)
308
/data 192.168.21.0/24(sync,no_root_squash,rw)
309
</pre>
Add picture from clipboard (Maximum size: 48.8 MB)