Discussion:
[9fans] I will buy laptop pre-installed with plan9!!!
(too old to reply)
Vincent Zhao
2012-05-09 14:44:06 UTC
Permalink
I will buy laptop pre-installed with plan9, can my dream come true?
Burton Samograd
2012-05-09 15:04:55 UTC
Permalink
Along these lines, is there a recommendation for the best laptop for running plan9? Ie. Native video, working Ethernet/wifi, no hassles with HW compatibility, etc. One every system I've tried there's always been something that has gone wrong, so I'm hoping that the wisdom of this list will direct me towards and fully working version, even if it's not the most modern technology.

Thank you.

-----Original Message-----
From: 9fans-***@9fans.net [mailto:9fans-***@9fans.net] On Behalf Of Vincent Zhao
Sent: Wednesday, May 09, 2012 8:44 AM
To: ***@9fans.net
Subject: [9fans] I will buy laptop pre-installed with plan9!!!

I will buy laptop pre-installed with plan9, can my dream come true?


This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
John Floren
2012-05-09 15:34:24 UTC
Permalink
A Thinkpad X60 or X61 works great and is very light, too.

john

On Wed, May 9, 2012 at 8:04 AM, Burton Samograd
Along these lines, is there a recommendation for the best laptop for running plan9?  Ie. Native video, working Ethernet/wifi, no hassles with HW compatibility, etc.  One every system I've tried there's always been something that has gone wrong, so I'm hoping that the wisdom of this list will direct me towards and fully working version, even if it's not the most modern technology.
Thank you.
-----Original Message-----
Sent: Wednesday, May 09, 2012 8:44 AM
Subject: [9fans] I will buy laptop pre-installed with plan9!!!
I will buy laptop pre-installed with plan9, can my dream come true?
This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page
Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
s***@9front.org
2012-05-09 15:57:08 UTC
Permalink
Post by John Floren
A Thinkpad X60 or X61 works great and is very light, too.
I have an X61T that works great with 9front. The T61 is also
a good choice (almost identical hardware to the X61T, but with
no tablet and a 14" 1280x800 screen). Some caveats:

- There are no known working Mini PCI Express wifi cards
- apm is not functional

Hardware stats on the T61:

% cd '#ec'; for(i in *){echo $i '=' `{cat $i}}
*msi = 1
bootargs = local!/dev/sdE0/fscache
bootfile = 9pccpufi
e820 = 0000000000000000 000000000009d800 0000000000100000 00000000bf6b0000 0000000100000000 000000013c000000
monitor = vesa
mouseport = ps2intellimouse
nvram = /dev/sdE0/nvram
vgasize = 1280x800x32

% cat '#'P/archctl
cpu Xeon5000-series 1995 pge
pge on
coherence mfence
cmpswap cmpswap486
i8253set on
cache default uc
cache 0xc0000000 1073741824 uc
cache 0x13c000000 67108864 uc
cache 0x0 4294967296 wb
cache 0x100000000 1073741824 wb
cache 0xbf700000 1048576 uc
cache 0xbf800000 8388608 uc

% cat '#'P/irqalloc
3 0 debugpt
7 0 mathemu
8 0 doublefault
9 0 mathover
14 0 fault386
15 0 unexpected
16 0 matherror
50 18 clock
51 19 lapicerror
63 31 lapicspurious
72 1 kbd
80 11 ether0
88 11 hda
96 6 floppy
104 11 usbuhci
112 10 usbuhci
120 14 sdC (ide)
128 10 sdE (ahci)

% cat '#'P/ioalloc
0 f dma
20 21 i8259.0
40 43 i8253
60 60 kbd
61 61 i8253.cntr2c
64 64 kbd
70 71 rtc/nvr
80 8f dma
a0 a1 i8259.1
d0 df dma
1f0 1f7 atacmd
2b0 2df vga
3c0 3da vga
3e0 3e1 i82365.0
3f0 3f5 floppy
3f6 3f6 atactl
3f7 3f7 floppy
fff fff dummy
1860 187f usbuhci
1880 189f usbuhci
18a0 18bf usbuhci
18c0 18df usbuhci
18e0 18ff usbuhci

% cat '#'c/config
# pccpuf - pc cpu server with local disk
dev
root
cons
arch
pnp pci
env
pipe
proc
mnt
srv
shr
dup
rtc
ssl
tls
bridge log
sdp thwack unthwack
cap
kprof
fs

ether netif
ip arp chandial ip ipv6 ipaux iproute netlog nullmedium pktmedium ptclbsum386 inferno

draw screen vga vgax
mouse mouse
kbd
vga

sd
audio dma
floppy dma
aoe

uart
usb

link
segdesc
devpccard
devi82365
apm apmjump
ether2000 ether8390
ether2114x pci
ether589 etherelnk3
ether79c970 pci
ether8003 ether8390
ether8139 pci
ether8169 pci ethermii
ether82543gc pci
ether82563 pci
ether82557 pci
ether83815 pci
etherdp83820 pci
etherbcm pci
etherec2t ether8390
etherelnk3 pci
etherga620 pci
etherigbe pci ethermii
ethervgbe pci ethermii
ethervt6102 pci ethermii
ethervt6105m pci ethermii
# etherm10g pci
ethersink
ethersmc devi82365 cis
etherwavelan wavelan devi82365 cis pci
ethermedium
netdevmedium
loopbackmedium
usbuhci
usbohci
usbehci usbehcipc

audiosb16 dma
audioac97 audioac97mix
audiohda

misc
archmp mp apic
mtrr

uarti8250
uartpci pci

sdaoe
sdide pci sdscsi
sd53c8xx pci sdscsi
sdmylex pci sdscsi
sdiahci pci sdscsi led
sdodin pci sdscsi led
sdvirtio pci sdscsi
sdloop

vga3dfx +cur
vgaark2000pv +cur
vgabt485 =cur
vgaclgd542x +cur
vgaclgd546x +cur
vgact65545 +cur
vgacyber938x +cur
vgaet4000 +cur
vgageode +cur
vgahiqvideo +cur
vgai81x +cur
vgamach64xx +cur
vgamga2164w +cur
vgamga4xx +cur
vganeomagic +cur
vganvidia +cur
vgargb524 =cur
vgas3 +cur vgasavage
vgat2r4 +cur
vgatvp3020 =cur
vgatvp3026 =cur
vgavesa
vgavmware +cur

ip
tcp
udp
ipifc
icmp
icmp6
gre
ipmux
esp
rudp
il

port
int cpuserver = 1;

boot cpu
tcp
local

bootdir
boot$CONF.out boot
/$objtype/bin/paqfs
/$objtype/bin/auth/factotum
bootfs.paq

% cat '#'c/swap
3207221248 memory
4096 pagesize
36735 kernel
198069/746278 user
0/160000 swap
13897024/73215488 kernel malloc
0/73215488 kernel draw

% cat '#'c/sysstat
0 206629932 42813186 396169026 258373294 0 0 68 97 0
1 222123891 22498439 385102485 259264331 0 0 0 98 0

% awk /^Plan 9$/{p=1} /^init: starting/{exit} {if(p)print} '#'c/kmesg
Plan 9
126 holes free
00018000 0009d000 544768
00490000 0938a000 149921792
150466560 bytes free
cpu0: 1995MHz GenuineIntel Xeon5000-series (cpuid: AX 0x06FB CX 0xE3BD DX 0xBFEBFBFF)
ELCR: 0C00
LAPIC: fee00000 e0000000
cpu1: 1994MHz GenuineIntel Xeon5000-series (cpuid: AX 0x06FB CX 0xE3BD DX 0xBFEBFBFF)
pcirouting: Cannot find south bridge PCI.255.31.7
#Y0: Ricoh 476 PCI/Cardbus bridge, F8300000 intl 10
msiintrenable: success with tbdf 0c00c800, vector 80, cpu 1
#l0: i82566: 1000Mbps port 0xFE000000 irq 11: 001fe21c1581
#S/sdE: ich: sata-I with 1 ports
#A0: hda mem e0024000 irq 11
hda: invalid connection 2:aout[0] -> 1
#A0: codec #0, vendor 11d41984, rev 00100400
msiintrenable: success with tbdf 0c00d800, vector 88, cpu 0
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00d100 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00D100 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00e900 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00E900 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00ea00 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00EA00 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00d700 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00D700 for usbehci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00ef00 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00EF00 for usbehci
3063M memory: 148M kernel data, 2915M user, 3540M swap
msiintrenable: success with tbdf 0c00fa00, vector 128, cpu 1
sdE0: LLBA 156,301,488 sectors
WDC WD800BEVS-08RST2 08.01G08 WD-WXCD-WXC308481170 [newdrive]

/dev/sdC0: HL-DT-STDVD-ROM GDR-M10N
/dev/sdE0: WDC WD800BEVS-08RST2
/dev/sdE0/9fat dos
/dev/sdE0/data
/dev/sdE0/fscache cwfs64x
/dev/sdE0/fsworm
/dev/sdE0/nvram
/dev/sdE0/other
/dev/sdE0/plan9
bootargs is (tcp, il, local!device) [local!/dev/sdE0/fscache]
current fs is "main"
13 uids read, 8 groups used
63-bit cwfs as of Fri Apr 13 10:21:34 2012
last boot Fri May 4 02:02:18 2012
3 keys read


% pci -v
0.0.0: brg 06.00.00 8086/2a00 0
Intel Corporation
0.2.0: vid 03.00.00 8086/2a02 10 0:f8100004 1048576 1:00000000 16 2:e000000c 268435456 3:00000000 16 4:00001801 16
Intel Corporation 02091028 Intel GM965, Intel X3100
0.2.1: vid 03.80.00 8086/2a03 0 0:f8200004 1048576 1:00000000 16
Intel Corporation 82Q965 Intel GM
0.25.0: net 02.00.00 8086/1049 11 0:fe000000 131072 1:fe025000 4096 2:00001841 32
Intel Corporation 82566MM NIC Gigabit Network Connection Interface Controller
0.26.0: usb 0c.03.00 8086/2834 11 4:00001861 32
Intel Corporation
0.26.1: usb 0c.03.00 8086/2835 11 4:00001881 32
Intel Corporation
0.26.7: usb 0c.03.20 8086/283a 11 0:fe226c00 1024
Intel Corporation 81EC1043 (?) ICH8 Enhanced USB2 Enhanced Host Controller
0.27.0: aud 04.03.00 8086/284b 11 0:fe020004 16384 1:00000000 16
Intel Corporation 888 Microsoft UAA bus for HD audio
0.28.0: brg 06.04.00 8086/283f 11
Intel Corporation
0.28.1: brg 06.04.00 8086/2841 11
Intel Corporation
0.28.2: brg 06.04.00 8086/2843 11
Intel Corporation
0.28.3: brg 06.04.00 8086/2845 11
Intel Corporation
0.28.4: brg 06.04.00 8086/2847 11
Intel Corporation
0.29.0: usb 0c.03.00 8086/2830 10 4:000018a1 32
Intel Corporation
0.29.1: usb 0c.03.00 8086/2831 11 4:000018c1 32
Intel Corporation
0.29.2: usb 0c.03.00 8086/2832 11 4:000018e1 32
Intel Corporation
0.29.7: usb 0c.03.20 8086/2836 11 0:fe227000 1024
Intel Corporation
0.30.0: brg 06.04.01 8086/2448 255
Intel Corporation 82801BAM/CAM/DBM Hub Interface to PCI Bridge
0.31.0: brg 06.01.00 8086/2811 0
Intel Corporation
0.31.1: disk 01.01.8a 8086/2850 255 0:00000001 16 1:00000001 16 2:00000001 16 3:00000001 16 4:00001c01 16
Intel Corporation 82801HBM/HEM PATA Controller
0.31.2: disk 01.06.01 8086/2829 10 0:00001c51 16 1:00001c45 16 2:00001c49 16 3:00001c41 16 4:00001c21 32 5:fe226000 2048
Intel Corporation 82801HBM AHCI Controller
0.31.3: smb 0c.05.00 8086/283e 11 0:fe227400 256 4:00001c61 32
Intel Corporation PCI\VEN_8086&DEV_283E&SUBSYS_20A917AA&REV_03\3&B1B SM Bus Controller
21.0.0: brg 06.07.00 1180/0476 10
Ricoh unknown RICOH SmartCard Reader
3.0.0: net 02.80.00 8086/4230 11 0:df3fe004 8192 1:00000000 16
Intel Corporation Intel 4965AGN Intel® Wireless WiFi Link 4965AGN

% aux/icanhasmsi
0.1.0
0.27.0
0.28.0
0.28.4
0.31.2
1.0.0
3.0.0

% aux/pcmcia

% cat '#'u/usb/ctl
ep1.0 enabled control rw speed full maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 2 uhci
ep2.0 enabled control rw speed full maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 2 uhci
ep3.0 enabled control rw speed full maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 2 uhci
ep4.0 enabled control rw speed full maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 2 uhci
ep5.0 enabled control rw speed full maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 2 uhci
ep6.0 enabled control rw speed high maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 4 ehci
ep7.0 enabled control rw speed high maxpkt 64 pollival 0 samplesz 0 hz 0 hub 0 port 0 busy
roothub csp 0x000009 ports 6 ehci

% cat '#'S/sdctl
sdC ata port 1F0 ctl 3F4 irq 14
sdE ahci ich port 0xe0023000: 64a ncq ntf alp led clo pmb slum pslum coal iss 1 ncs 31 np 3 ghc 80000002 isr 0 pi 1 0 ver 10100

% cat '#'S/sdC0/ctl
inquiry HL-DT-STDVD-ROM GDR-M10N
config 85C0 capabilities 0F00 dma 00550004 dmactl 00550004
model HL-DT-STDVD-ROM GDR-M10N
serial
firm 1.00
feat lba atapi
missirq 0
sloop 0
irq 219 218
bsy 0 0
nildrive 1

% cat '#'S/sdE0/ctl
inquiry WDC WD800BEVS-08RST2
model WDC WD800BEVS-08RST2
serial WD-WXCD-WXC308481170
firm 08.01G08
wwn 50014ee2ac0bab56
flag lba llba smart power sct
udma 6
reg task 50 cmd c017 serr 0 ci 0 is 0 sig 101 sstatus 113
cmd cr fr pod sud st
mode auto satai
geometry 156301488 512
part data 0 156301488
part plan9 63 156296385
part 9fat 63 204863
part nvram 204863 204864
part other 204864 22503652
part fscache 22503652 44802440
part fsworm 44802440 156296385

% cat '#'l/ether0/addr
001fe21c1581
% cat '#'l/ether0/stats
in: 2746305
link: 0
out: 3803995
crc errs: 0
overflows: 0
soft overflows: 0
framing errs: 0
buffer errs: 0
output errs: 0
prom: 0
mbps: 0
addr: 001fe21c1581

% cat '#'l/ether0/ifstats
Good Packets Received: 2725445 0
Broadcast Packets Received: 10008 0
Good Packets Transmitted: 3783272 0
Good Octets Received: 210939194 0
Good Octets Transmitted: 2694498744 0
Total Octets Received: 210939322 0
Total Octets Transmitted: 2694498744 0
Total Packets Received: 2725447 0
Total Packets Transmitted: 3783272 0
Broadcast Packets Transmitted: 143 0
Interrupt Assertion: 2648937 0
lintr: 1 2
rintr: 2648936 2648937
tintr: 0 0
ixcs: 2725438 2724350 2724112
rdtr: 25
radv: 500
ctrl: 00140240
ctrlext: 41580000
status: 00080663
txcw: 00000000
txdctl: 00040004
pba: 00080008
pool: fast 2725700 slow 3550 nstarve 0 nwakey 0 starve 0
speeds: 10:0 100:0 1000:0 ?:2
type: i82566

% cat '#'v/vgactl
type cga
blank time 30 idle 2448 state on
hwaccel on
hwblank off
panning off
addr p 0x0 v 0x0 size 0x0

@{rfork n; aux/realemu; aux/vga -p}
vesa flag Ulinear|Hlinear|Fsnarf
vesa sig VESA 3.0
vesa oem Intel(r)GM965/PM965/GL960 Graphics Chip Accelerated VGA BIOS 1.0
vesa vendor Intel Corporation
vesa product Intel(r)GM965/PM965/GL960 Graphics Controller
vesa rev Hardware Version 0.0
vesa cap 8-bit-dac
vesa mem 7798784
vesa mode 0x160 768x480x8 m8 packed
vesa mode 0x161 768x480x16 r5g6b5 direct
vesa mode 0x162 768x480x32 x8r8g8b8 direct
vesa mode 0x163 960x600x8 m8 packed
vesa mode 0x164 960x600x16 r5g6b5 direct
vesa mode 0x165 960x600x32 x8r8g8b8 direct
vesa mode 0x166 1280x800x8 m8 packed
vesa mode 0x167 1280x800x16 r5g6b5 direct
vesa mode 0x168 1280x800x32 x8r8g8b8 direct
vesa mode 0x105 1024x768x8 m8 packed
vesa mode 0x117 1024x768x16 r5g6b5 direct
vesa mode 0x118 1024x768x32 x8r8g8b8 direct
vesa mode 0x112 640x480x32 x8r8g8b8 direct
vesa mode 0x114 800x600x16 r5g6b5 direct
vesa mode 0x115 800x600x32 x8r8g8b8 direct
vesa mode 0x101 640x480x8 m8 packed
vesa mode 0x103 800x600x8 m8 packed
vesa mode 0x111 640x480x16 r5g6b5 direct
edid mfr LEN
edid serialstr
edid name
edid product 16433
edid serial 0
edid version 1.3
edid mfrdate 2008.0
edid size (cm) 30x19
edid gamma 2.20
edid vert (Hz) 0-0
edid horz (Hz) 0-0
edid pclkmax 0
edid flags digital standby suspend activeoff
edid ***@60Hz
clock=69.5
shb=1328 ehb=1360 ht=1405
vrs=803 vre=809 vt=822
hsync=- vsync=-
edid ***@50Hz
clock=57.71
shb=1328 ehb=1360 ht=1405
vrs=803 vre=809 vt=822
hsync=- vsync=-

% xd -x1 '#'r/nvram
0000000 16 00 51 00 18 00 07 05 05 12 26 02 70 80 00 00
0000010 00 00 00 00 03 7a 02 00 fc 01 00 03 00 bf 0e 00
0000020 00 02 00 00 00 00 05 00 00 bb bb 01 00 00 03 ca
0000030 00 fc 20 8c c1 07 70 bb 00 00 00 00 00 00 00 00
0000040 48 44 b0 bb 00 03 bb d4 2f 87 d0 30 80 00 00 00
0000050 00 00 c0 05 52 f8 2f 1d 00 5b 0f 02 03 30 00 04
0000060 04 00 f1 df f5 a0 01 71 14 07 10 d8 af 01 47 03
0000070 c5 fe 00 07 81 00 43 12 fc 63 00 00 49 53 b2 00
0000080 16 00 51 00 18 00 07 05 05 12 26 02 00 80 00 00
0000090 00 00 00 00 03 7a 02 00 fc 01 00 03 00 bf 0e 00
00000a0 00 02 00 00 00 00 05 00 00 bb bb 01 00 00 03 ca
00000b0 00 fc 20 8c c1 07 70 bb 00 00 00 00 00 00 00 00
00000c0 48 44 b0 bb 00 03 bb d4 2f 87 d0 30 80 00 00 00
00000d0 00 00 c0 05 52 f8 2f 1d 00 5b 0f 02 03 30 00 04
00000e0 04 00 f1 df f5 a0 01 71 14 07 10 d8 af 01 47 03
00000f0 c5 fe 00 07 81 00 43 12 fc 63 00 00 49 53 b2 00
0000100
0000100

% cat '#'A/audiostat
bufsize 1024 buffered 0
codec 0 pin 17
pin 17 out jack ext front hpout green
pin 18 out fix int N/A speaker ? eapd
pin 19 out nothing int rear speaker ? eapd
pin 20 in jack ext front micin red
pin 21 in fix int N/A micin ?
pin 22 out nothing int special cd ?
pin 23 in nothing int top micin ?
pin 24 in nothing int top micin ?
pin 26 in fix int rear other black
pin 27 out jack sep rear spdifout black
pin 28 out jack sep rear micin red

% cat '#'A/volume
master 100 100
speed 44100
delay 882

---

-sl
erik quanstrom
2012-05-09 18:25:54 UTC
Permalink
plan 9 supports up to 4g of memory, depending on the
size of pci space, and 3.75g per process.

- erik
erik quanstrom
2012-05-10 18:17:45 UTC
Permalink
Post by s***@9front.org
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00d100 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00D100 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00e900 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00E900 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00ea00 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00EA00 for usbuhci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00d700 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00D700 for usbehci
mpintrenable: multiple botch irq 11, tbdf 5000000, lo 00000068, n 00000068
mpintrenable: out of choices eisa -1 isa 22 tbdf 0xc00ef00 irq 11
intrenable: couldn't enable irq 11, tbdf 0xC00EF00 for usbehci 3063M memory: 148M kernel data, 2915M user, 3540M swap
what's going on with this? it looks like the same device is being considered
with various tbdfs.

- erik
c***@gmx.de
2012-05-10 21:39:24 UTC
Permalink
0.26.0: usb 0c.03.00 8086/2834 11 4:00001861 32
Intel Corporation
0.26.1: usb 0c.03.00 8086/2835 11 4:00001881 32 <- failed
Intel Corporation
0.26.7: usb 0c.03.20 8086/283a 11 0:fe226c00 1024 <- failed
Intel Corporation 81EC1043 (?) ICH8 Enhanced USB2 Enhanced Host Controller
0.29.0: usb 0c.03.00 8086/2830 10 4:000018a1 32
Intel Corporation
0.29.1: usb 0c.03.00 8086/2831 11 4:000018c1 32 <- failed
Intel Corporation
0.29.2: usb 0c.03.00 8086/2832 11 4:000018e1 32 <- failed
Intel Corporation
0.29.7: usb 0c.03.20 8086/2836 11 0:fe227000 1024 <- failed
Intel Corporation

--
cinap
erik quanstrom
2012-05-10 21:48:10 UTC
Permalink
Post by s***@9front.org
0.26.0: usb 0c.03.00 8086/2834 11 4:00001861 32
Intel Corporation
0.26.1: usb 0c.03.00 8086/2835 11 4:00001881 32 <- failed
Intel Corporation
0.26.7: usb 0c.03.20 8086/283a 11 0:fe226c00 1024 <- failed
Intel Corporation 81EC1043 (?) ICH8 Enhanced USB2 Enhanced Host Controller
0.29.0: usb 0c.03.00 8086/2830 10 4:000018a1 32
Intel Corporation
0.29.1: usb 0c.03.00 8086/2831 11 4:000018c1 32 <- failed
Intel Corporation
0.29.2: usb 0c.03.00 8086/2832 11 4:000018e1 32 <- failed
Intel Corporation
0.29.7: usb 0c.03.20 8086/2836 11 0:fe227000 1024 <- failed
Intel Corporation
so the question is, why were they tried as ISA.0.0.0? (that is, 0x05000000)
or is the output misleading.

any chance the pin routing is messing things up? in nix, we wildcard any
intel southbridge and apply intel remapping. i noticed this particular board's
southbridge wasn't recognized.

from what i've seen, usb is always pci and never supports msi. i suspect
that the standard precludes edge-triggered interrupts, but i haven't
verified this.

- erik
c***@gmx.de
2012-05-10 22:02:52 UTC
Permalink
from reading the source, it looks like mpintrenable() just tries isa
if everything else fails:

tbdf = v->tbdf;
if(tbdf != BUSUNKNOWN && (vno = mpintrenablex(v, tbdf)) != -1)
return vno;

...
if(mpisabus != -1){
vno = mpintrenablex(v, MKBUS(BusISA, 0, 0, 0));
if(vno != -1)
return vno;
}
print("mpintrenable: out of choices eisa %d isa %d tbdf %#ux irq %d\n",
mpeisabus, mpisabus, v->tbdf, v->irq);
return -1;

the "multiple botch" happens only when it tries isa tbdf and can probably
ignored?

i wonder why the first mpintrenablex() with the pci tbdf would fail. the
only case where it would fail that way without leaving some other kernel
print behind is when there is no matching pin (aintr->irq) entry in the
bus->aintr list no?

that list is build from mp table. maybe should figure out the pin of these
pci devices?

--
cinap
erik quanstrom
2012-05-11 11:50:34 UTC
Permalink
Post by c***@gmx.de
the "multiple botch" happens only when it tries isa tbdf and can probably
ignored?
i wonder why the first mpintrenablex() with the pci tbdf would fail. the
only case where it would fail that way without leaving some other kernel
print behind is when there is no matching pin (aintr->irq) entry in the
bus->aintr list no?
that list is build from mp table. maybe should figure out the pin of these
pci devices?
i'd dump the irq list next. there's code in 9atom to present /dev/mpirq.

- erik
c***@gmx.de
2012-05-11 16:20:37 UTC
Permalink
will do. btw, that "cannot find southbridge" is there forever. just
googled for "PCI.255.31.7" or "255:31:7" and you get tons of results.
maybe that entry in the $PIR is just bogus/dummy?

--
cinap
c***@gmx.de
2012-05-12 13:34:18 UTC
Permalink
ok, i think i see now what happens. none of the usb controllers have a
PCMPintr entry in the bus. so what happens is that mpintrenable() calls
mpintrenablex() with the dummy ISA tbdf again assigning them irq 10
and 11. this succeeds with the first controller tried but fails with
following controllers sharing the same interrupt because the interrupt
was configured edge triggered for isa.

the ELCR register is 0xC00 so irq 10 and 11 should be level triggered no?

--
cinap
Alexander Kapshuk
2012-05-09 16:15:28 UTC
Permalink
Post by Vincent Zhao
I will buy laptop pre-installed with plan9, can my dream come true?
Toshiba Portege M300. Everything but wifi works as expected.
s***@9front.org
2012-05-09 16:28:32 UTC
Permalink
Thinkpad T23 is the canonical Plan 9 laptop. Everything I've tried
on it works: apm, sound, wifi. The Actiontec 800MIP (branded WaveLAN)
wifi card it ships with actually works.

Thinkpad T42 is likewise well supported. The wifi card(s) it shipped
with did not work for me, but its Mini PCI slot is compatible with
the Actiontec 800MIP from the T23. Note: replacing the wifi card
requires completely disassembling the laptop. Many screws.

Another option for wifi is PCMCIA, which has the benefit of being
available on almost all laptops. However, I've not had great luck.
The WaveLAN PC24E-H-FC works, but exhibits abysmal performance.
Other WaveLAN PCMCIA cards I've tried have not worked at all. I'm
not certain if this owes to incompatibility or faulty hardware.
It's also possible that support for the specific PCMCIA controllers
in my various laptops is buggy.

-sl
erik quanstrom
2012-05-09 16:32:13 UTC
Permalink
Post by s***@9front.org
Another option for wifi is PCMCIA, which has the benefit of being
available on almost all laptops. However, I've not had great luck.
not so much anymore.

- erik
Burton Samograd
2012-05-09 16:39:38 UTC
Permalink
What do you think the compatibility of getting an Actiontech 800MiP card and using it in an X60? I like the form factor of the X60 plus the better specs, I'm just not sure if it also uses the same Mini PCI slot of the T23.

--
Burton Samograd

-----Original Message-----
From: 9fans-***@9fans.net [mailto:9fans-***@9fans.net] On Behalf Of ***@9front.org
Sent: Wednesday, May 09, 2012 10:29 AM
To: ***@9fans.net
Subject: Re: [9fans] I will buy laptop pre-installed with plan9!!!

Thinkpad T23 is the canonical Plan 9 laptop. Everything I've tried on it works: apm, sound, wifi. The Actiontec 800MIP (branded WaveLAN) wifi card it ships with actually works.

Thinkpad T42 is likewise well supported. The wifi card(s) it shipped with did not work for me, but its Mini PCI slot is compatible with the Actiontec 800MIP from the T23. Note: replacing the wifi card requires completely disassembling the laptop. Many screws.

Another option for wifi is PCMCIA, which has the benefit of being available on almost all laptops. However, I've not had great luck.
The WaveLAN PC24E-H-FC works, but exhibits abysmal performance.
Other WaveLAN PCMCIA cards I've tried have not worked at all. I'm not certain if this owes to incompatibility or faulty hardware.
It's also possible that support for the specific PCMCIA controllers in my various laptops is buggy.

-sl


This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
Burton Samograd
2012-05-09 16:44:58 UTC
Permalink
Also, all I can find on ebay is the 802MiP which looks to be a wifi/modem combo. Any idea if this is compatible with the 800MiP?

--
Burton Samograd

-----Original Message-----
From: 9fans-***@9fans.net [mailto:9fans-***@9fans.net] On Behalf Of Burton Samograd
Sent: Wednesday, May 09, 2012 10:40 AM
To: Fans of the OS Plan 9 from Bell Labs
Subject: Re: [9fans] I will buy laptop pre-installed with plan9!!!

What do you think the compatibility of getting an Actiontech 800MiP card and using it in an X60? I like the form factor of the X60 plus the better specs, I'm just not sure if it also uses the same Mini PCI slot of the T23.

--
Burton Samograd

-----Original Message-----
From: 9fans-***@9fans.net [mailto:9fans-***@9fans.net] On Behalf Of ***@9front.org
Sent: Wednesday, May 09, 2012 10:29 AM
To: ***@9fans.net
Subject: Re: [9fans] I will buy laptop pre-installed with plan9!!!

Thinkpad T23 is the canonical Plan 9 laptop. Everything I've tried on it works: apm, sound, wifi. The Actiontec 800MIP (branded WaveLAN) wifi card it ships with actually works.

Thinkpad T42 is likewise well supported. The wifi card(s) it shipped with did not work for me, but its Mini PCI slot is compatible with the Actiontec 800MIP from the T23. Note: replacing the wifi card requires completely disassembling the laptop. Many screws.

Another option for wifi is PCMCIA, which has the benefit of being available on almost all laptops. However, I've not had great luck.
The WaveLAN PC24E-H-FC works, but exhibits abysmal performance.
Other WaveLAN PCMCIA cards I've tried have not worked at all. I'm not certain if this owes to incompatibility or faulty hardware.
It's also possible that support for the specific PCMCIA controllers in my various laptops is buggy.

-sl


This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.


This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
s***@9front.org
2012-05-09 17:07:51 UTC
Permalink
Another possibility for wifi would be something like the
VAP11G wifi bridge dongle. These are small devices that
bridge an Ethernet port to wifi. Note: I've never actually
used one.

-sl
s***@9front.org
2012-05-09 17:02:12 UTC
Permalink
Post by Burton Samograd
Also, all I can find on ebay is the 802MiP which looks to be
a wifi/modem combo. Any idea if this is compatible with the
800MiP?
No idea.

-sl
s***@9front.org
2012-05-09 17:03:43 UTC
Permalink
Post by Burton Samograd
What do you think the compatibility of getting an Actiontech
800MiP card and using it in an X60?
ThinkWiki says the X60 is Mini PCI Express, not Mini PCI.
Unfortunately, the cards are not compatible. You could try
to acquire a WaveLAN PC24E-H-FC.

-sl
hiro
2012-05-10 00:15:16 UTC
Permalink
Post by s***@9front.org
ThinkWiki says the X60 is Mini PCI Express, not Mini PCI.
mhm, isn't mini pci express the newer smaller slot? I have an X60 and
it has the old large slot which I think is called PCMCIA
s***@9front.org
2012-05-10 00:27:31 UTC
Permalink
Post by hiro
Post by s***@9front.org
ThinkWiki says the X60 is Mini PCI Express, not Mini PCI.
mhm, isn't mini pci express the newer smaller slot? I have an X60 and
it has the old large slot which I think is called PCMCIA
http://en.wikipedia.org/wiki/Mini_PCI#Mini_PCI
http://en.wikipedia.org/wiki/Pcmcia

-sl
yang.zhao
2012-05-10 02:04:52 UTC
Permalink
Can Plan9 be installed on the Thinkpad x201i?
Thanks.
Post by s***@9front.org
Post by hiro
Post by s***@9front.org
ThinkWiki says the X60 is Mini PCI Express, not Mini PCI.
mhm, isn't mini pci express the newer smaller slot? I have an X60 and
it has the old large slot which I think is called PCMCIA
http://en.wikipedia.org/wiki/Mini_PCI#Mini_PCI
http://en.wikipedia.org/wiki/Pcmcia
-sl
--
K.I.S.S.
andrey mirtchovski
2012-05-10 02:17:02 UTC
Permalink
Post by yang.zhao
Can Plan9 be installed on the Thinkpad x201i?
Thanks.
It works in RubeGoldberg 2.2 but will not autocompile freeway
scuzzmonkey merge svn commitshare javahunk.

// could not resist, apologies all round.
Justin Bedő
2012-05-10 07:34:00 UTC
Permalink
I'm running it fine on an x201.
Post by yang.zhao
Can Plan9 be installed on the Thinkpad x201i?
Thanks.
yang.zhao
2012-05-10 08:09:53 UTC
Permalink
Really? Wonderful..
Is there some docs for install Plan 9(more detail)?
x201 doesn't have a CD-ROM..
Thx.
Post by Justin Bedő
I'm running it fine on an x201.
Post by yang.zhao
Can Plan9 be installed on the Thinkpad x201i?
Thanks.
--
K.I.S.S.
Justin Bedo
2012-05-10 08:53:28 UTC
Permalink
Post by yang.zhao
Really? Wonderful..
Is there some docs for install Plan 9(more detail)?
x201 doesn't have a CD-ROM..
I actually used the docking station with a cdrom drive to install. I
also needed the 9load from 9atom to get it to boot, though I'm
otherwise running a stock plan 9 from bell labs. I tried to usb boot
out of curiosity, but it crashed during boot and as I had a working
cdrom drive I didn't put much effort into solving the problem.

I also might have been a little enthusiastic when I said "fine". The
MP tables are broken so you can't use the second core. Other than
that the video works great as does ethernet.

There are installation instructions on the plan 9 website.

Justin
Charles Forsyth
2012-05-10 09:05:16 UTC
Permalink
On one of my Atoms I found that actually the problem (on that hardware) was
that Plan 9's memory probing was zapping one of the bytes in its tables,
preventing the second CPU from being seen. ("PCMP" changed to 0xCC "CMP").
A recent change to pc/memory.c might have fixed that.
Post by Justin Bedo
The
MP tables are broken so you can't use the second core.
t***@polynum.com
2012-05-10 10:19:51 UTC
Permalink
Post by yang.zhao
Really? Wonderful..
Is there some docs for install Plan 9(more detail)?
x201 doesn't have a CD-ROM..
Installing Plan9 without a CD reader or a PXE boot.

Abstract

The Plan9 distribution is available for installation by the mean of a
bootable ISO image supposed to be burnt on a CDROM. But this image has
indeed all the pieces needed to realize an installation, without a CD
reader, or without a PXE boot.

What follows is an illustration of "how to do without".

0. What was first? The egg or the goose? Well: the egg, that is some
BIOS.

In the following, the names will match the pc world; but, more or less,
there is a mapping between pc idiosynchrasies and something else
idiosynchrasies.

When a pc starts, it first initializes its hardware before giving the
hand to an user provided program---generally an operating system. But to
be able to hand over to something else, it has to know the rendez-vous
point. This BIOS entry point is a 512 bytes sector, that is a program,
and that is (for disks and like) the very first sector of the device.

On disks, it is called: MBR. It is a program with a signature (for basic
verification that it is indeed the expected program), and some data
embedded: a partition table.

To be able to boot Plan9, the information has to be in the MBR, this
means that the first sector must be able to hand over to another program
(generally one sector size too) customized for Plan9.

Since the partition table has 4 entries, for things to work, the
MBR program must be able to read the partition table and load the
very first sector of one partition, whether because it is flagged:
ACTIVE, or because the MBR allows to select it. The only Plan9
peculiar thing in the MBR is not the program by itself (the MBR
provided by other systems will generally do the job), but a Plan9
entry in the partition table.

Plan9 has to have a _primary_ partition (and not a secondary "extended"
---indirect---one that the bootstrapping blocks will not be able to
access).

Recommended reading: 9load(8).

1. Defining a Plan9 partition (MBR partition table).

As the name: partition, shall suggest, the 1 to 4 (max) primary
partitions shall realize a partition of the disk: the reunion covers the
whole disk; and there is no overlapping. One supplementary property: a
partition is declared by its type (magic number proper to the system),
its beginning and its size. This means that a partition defines a
continuous slice of sectors.

Since this partition table is what, due to hardware bootstrapping
design, is shared between different systems (multi-boot), the partition
shall declare what is each system realm in terms of space used on the
disk; and let others realms alone. (In what follows, since we will use
an already installed system to prepare for Plan9, this will be
relaxed---but as an exception and with caution.)

So the first step is to declare enough space for a Plan9 realm (for what
follows, since we do not reduce the size of the installed data and
declare 100Mb for the particular 9fat, say: 512Mb at least---this can be
reduced once you know how it works, or if you install only a terminal).
So declare a primary partition as a Plan9 : 0x39 type, with (here) at
least 512Mb. You can do that with whatever fdisk(8) is available on the
"other" system.

But do repeat: the Plan9 partition is a partition, that is do not have
any intersection (of data) with others. Plan9 can write whatever it
wants in its realm without risking overwriting others data.

Recommended reading: prep(8).

2. The Plan9 partition realm: its organization.

Fdisk(8) has declared a Plan9 realm. But this realm is, as far as
fdisk(8) and the MBR are concerned, just a continuous area of disks
blocks. There is no organization of the blocks; no data in the blocks.
It is a virgin (read: random) area.

So even if the Plan9 partition is declared active (or if the boot
process allows to select it), this will not magically work, since the
very first sector of the Plan9 partition is, at this moment, random
bytes, not a dedicated sector able to bootstrap Plan9.

We need so to organize a part of the realm the way Plan9 and the Plan9
bootstrapping process expects it to be.

The conditions that have to be met are the following:

1) The very beginning of the Plan9 partition coincides with the
beginning of a FAT12 or FAT16 subpartition.

2) This FAT has 2 reserved sectors: the first one is the "classical" FAT
sector; the second one will hold the informations about the Plan9
partition subpartionning.

3) The very first sector (of the Plan9 partition and so of the FAT too)
has a Plan9 PBS---a Plan9 bootstrapping block.

4) The volid field of the FAT first block is set with the address of
the beginning of the root dir.

5) The program 9load exists in the FAT and is the very first entry
in the root dir.

6) [Not necessary for bootstrapping] So that 5) remains true, the 9load
file must be tagged SYSTEM, so that it is not moved when updating.

7) That other files: a Plan9 kernel with an embedded root file system,
the Plan9.ini and the vgadb be there.

8) That the existence of the FAT subpartition be declared so Plan9
knows that it is already there.

This could seem complicated at first, but indeed the majority of "other"
systems have the utils to set this.

Recommended reading: 9load(8), disk/format.c.

3. Illustration of what has to be done with a NetBSD system.

We will show below an implementation of the steps using NetBSD utils
(all default provided ones).

Do note that under Unices, for the most part, you will need to be root
(or to use dedicated tricks to work as an unprivileged user).

First we create (assuming there is room in some disk) a Plan9 partition.
Basic usage of fdisk(8).

To avoid using brutally dd(1) on the whole disk, we will make the first
part of this partition, that will be a FAT16 file system, visible for
NetBSD. (This is the temporary exception signalled above.)

To do this, we simply add an entry in the disklabel of the very disk
where Plan9 is declared and will be installed. The disklabel is like
Plan9 partitionning: NetBSD sees only what is declared in its disklabel
and it is partly orthogonal to what is declared in the MBR (this is
both handy and dangerous if one plays too much with the possibilities).

Here, we have declared a Plan9 partition on wd0, with the following
characteristics:

0: Plan 9, or Theos spanned (sysid 57)
bootmenu: Plan9
start 63, size 2232972 (1090 MB, Cyls 0-138)

Plan9 is the very first primary partition, starting at sector 63, with
a size of 1090MB. (The values are not mandatory; it could another
offset, and another size.)

We will create a FAT16 of 100MB (to put the iso image in it; there are
more than one way to do combining the commands described below). This
FAT16 has to coincide with the very beginning of the Plan9 partition; so
_here_ sector 63.

We declare this in the disklabel, adding an entry (here the 'n') using
disklabel(8) on wd0:

n: 204800 63 MSDOS # (Cyl. 0*- 203*)

So it starts at 63, is MSDOS and is 204800 blocks (so far less than
the whole plan9 partition, but _inside_ the Plan9 partition: check and
recheck; we will format and write so it has to be a scratch zone!).

From now on, we will be able to use this dedicated area, and to
constrain for some safety, the actions to this area, we will be using
/dev/wd0n or /dev/rwd0n.

disk=wd0
part=n
dev=/dev/r${disk}$part

Before formatting (disklabel declares subpartitions but does no
formatting), we will need to retrieve Plan9 PBS and 9load.

Where to find them? In the ISO image.

The ISO image is an ISO file system in the form of an uniq file. To read
it, one has simply to find the way on the system to treat a file as
a disk. Under Plan9 this is partfs(8). Under NetBSD, this is
vnconfig(8).

So assuming the ISO is in $plan9iso (uncompressed), and a mount point
/cdrom exists:

vnconfig -c vnd0 $plan9iso
mount -t cd9660 /dev/vnd0d /cdrom

Now you have access to all the iso files under (here) /cdrom.

One file will be of special interest: bootdisk.img. What is it?

The CD is "bootable" using El Torito BIOS extensions. When the BIOS
supports this, it can present a "file" (here: bootdisk.img) as a floppy
(of whatever size, from 5"1/4 to the diverse 3"1/2; commonly, 1.44MB or
2.88MB---the latter here) or even as a hd (I have not seen this
implemented yet; this is in the spec, but in the real?).

When the PC boots, the BIOS tricks to offer this data as a fd# or hd#.
This explains why, sometimes, the CD boots---user cries: Hurrah! my
hardware is recognized!---but when the system, on the CD, takes the
hand, it panics, unable to read the CD! That's because the initial
programs use the BIOS, and use a fd# that is a fake one, accessing it
via the BIOS, while when the system takes the hand and doesn't use
anymore the BIOS services (DOS was using BIOS...), if it has not the
drivers, it doesn't know how to access.

So this image, that is a FAT filesystem, we will explore it too. Same
process (assuming a mount point named /floppy, for illustration):

vnconfig -c vnd1 /cdrom/bootdisk.img
mount -t msdos /dev/vnd01 /floppy

This image is a FAT, has what we need. So why not simply dd(1) it to the
beginning of the Plan9 partition and been done with it? For 3 reasons:

1) This is a 2.88Mb file system. A bit short if we want to put extra
stuff.

2) There is a field that has to be set with the correct address: the
volid. This value is not the correct one, unless we dd(8) on the MBR,
which I do not recommend...

3) The PBS has to bootstrap a diskette, so is not an LBA aware one. On a
disk, the Plan9 partition can be a far, far, far, far realm...

So now we have all what is needed to format the FAT16. First, we will
occupy ourselves with the PBS, taking the lba flavour. One caveat,
though: it has not the signature and it has to be there (for NetBSD
newfs_msdos(8); other programs may handle this by themselves). So we
add it:

cat /cdrom/386/pbslba /dev/zero | dd of=/tmp/pbs count=1 bs=510 conv=notrunc
printf "\x55\xAA" >>/tmp/pbs

Next, we need to compute some numbers: the fatsize, and the volid. The
details can be found in disk/format.c. The offset is the offset of the
first sector of the FAT (== first sector of the plan9 partition); the
partsizebk, is the size in 512 blocks; these 2 informations were given
above in the disklabel:

n: 204800 63 MSDOS # (Cyl. 0*- 203*)

So _here_ (has to be adapted):

disk=wd0
part=n
offset=63
partsizebk=204800

Then:

fatsize=$(( (16 * ($partsizebk / 4) + 8 * 512 - 1 ) / ( 8 * 512 ) ))
volid=$(( $offset + 2 * $fatsize + 2 ))

We have all the informations to format the Plan9 FAT subpartition
(9fat):

newfs_msdos -B /tmp/pbs\
-F 16 -S 512 -b 2048 -a $fatsize -r 2 -I $volid /dev/r${disk}$part


We add the information about the 9fat in Plan9 partition sector (the 2nd
reserved one):

printf "part %s %d %d\n" 9fat 0 $partsizebk\
| dd of=/dev/${disk}$part seek=1 conv=notrunc

We have now a FAT ready that we can mount:

mount -t msdos /dev/${disk}$part /mnt

We copy 9load first (see 5):

cp /floppy/9load /mnt

Then the rest:

cd /floppy
cp 9pc* plan9.ini vgadb /mnt

We add the bzip2 iso image (we could put it elsewhere, or even retrieve
it by network etc.):

cat $plan9iso | bzip2 >/mnt/plan9.iso.bz2

Unmount everything:

umount /mnt
umount /floppy
vnconfig -u vnd1
umount /cdrom
vnconfig -u vnd0

And finally, for cleanliness, set the SYS flag (plus archive) on 9load
in 9fat:

printf "\x24"\
| dd of=/dev/${disk}$part conv=notrunc\
seek=$(((2 * $fatsize + 2) * 512 + 32 + 11)) bs=1 count=1

Now, you have a bootable Plan9. And you will discover that the
all-in-one 9pcflop.gz (a Plan9 kernel and a small root fs) has already
a lot, a lot, a lot of possibilities in a very small size. So keeping
it will make a repair tool very handy.

[Note: the installation scripts have to be adapted, since they assume
that if 9fat is here, everything is already set. This is wrong after the
above procedure.]
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
erik quanstrom
2012-05-10 11:47:49 UTC
Permalink
Post by t***@polynum.com
6) [Not necessary for bootstrapping] So that 5) remains true, the 9load
file must be tagged SYSTEM, so that it is not moved when updating.
i originally read this incorrectly as from the prespective of dossrv(4);
in that case one would say ...

from the perspective of dossrv(4), the exclusive use flag tells dossrv
to try to keep the program contiguous on disk. moving it around is
ok.
Post by t***@polynum.com
3) The PBS [on an iso] has to bootstrap a diskette, so is not an LBA aware one. On a
disk, the Plan9 partition can be a far, far, far, far realm...
thanks to geoff's recent work, this isn't true anymore. see mk9660(8)
and the -B flag. i have no idea what *bsd tools would want to support this.

- erik
t***@polynum.com
2012-05-10 11:58:35 UTC
Permalink
Post by erik quanstrom
Post by t***@polynum.com
6) [Not necessary for bootstrapping] So that 5) remains true, the 9load
file must be tagged SYSTEM, so that it is not moved when updating.
i originally read this incorrectly as from the prespective of dossrv(4);
in that case one would say ...
from the perspective of dossrv(4), the exclusive use flag tells dossrv
to try to keep the program contiguous on disk. moving it around is
ok.
I'm not a DOS FS specialist but I would be cautious about this because
there may be some binaries that expect not only a file to be a
contiguous series of blocks, but to start precisely _here_.
Post by erik quanstrom
Post by t***@polynum.com
3) The PBS [on an iso] has to bootstrap a diskette, so is not an LBA aware one. On a
disk, the Plan9 partition can be a far, far, far, far realm...
thanks to geoff's recent work, this isn't true anymore. see mk9660(8)
and the -B flag. i have no idea what *bsd tools would want to support this.
Thanks, I will read the manpage and update the document when necessary.
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
erik quanstrom
2012-05-10 12:20:32 UTC
Permalink
Post by t***@polynum.com
Post by erik quanstrom
from the perspective of dossrv(4), the exclusive use flag tells dossrv
to try to keep the program contiguous on disk. moving it around is
ok.
I'm not a DOS FS specialist but I would be cautious about this because
there may be some binaries that expect not only a file to be a
contiguous series of blocks, but to start precisely _here_.
which binaries would those be? there are only two that i can think of
pbs and dossrv. pbs doesn't require that 9load be at a specific offset,
or the first entry. see /sys/src/boot/pc/pbs.s

dossrv obviously doesn't care.

- erik
t***@polynum.com
2012-05-10 12:30:13 UTC
Permalink
Post by erik quanstrom
Post by t***@polynum.com
Post by erik quanstrom
from the perspective of dossrv(4), the exclusive use flag tells dossrv
to try to keep the program contiguous on disk. moving it around is
ok.
I'm not a DOS FS specialist but I would be cautious about this because
there may be some binaries that expect not only a file to be a
contiguous series of blocks, but to start precisely _here_.
which binaries would those be? there are only two that i can think of
pbs and dossrv. pbs doesn't require that 9load be at a specific offset,
or the first entry. see /sys/src/boot/pc/pbs.s
dossrv obviously doesn't care.
I don't speak about Plan9 utils. Since the document is how to do using
another system as a tool, I don't know if all the dos utils outside
Plan9 are like this (is there something as a "DOS standard"?). So I was
(I hope) careful to write only things that are true, not only under
Plan9, but under any host.

And for the binaries, I do not have in mind the Plan9 one, but the
example of GRUB: if what they call stage_1.5 is not here (the ability to
read a filesystem), the list of blocks to load is embedded in the
stage1. If one moves stage2, it is not bootable anymore.

So I'm just cautious not to say something that is only true under Plan9
and that the reader could take for granted elsewhere. Since I have in
the doc to take into account not only Plan9 in order to find a way to
install Plan9 from some OS already there.

Thanks,
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
c***@gmx.de
2012-05-10 13:31:14 UTC
Permalink
this simplifies building bootable cds.

the advantage being that your kernel doesnt need to fit
in that floppy image but can be just any file on the iso
filesystem. that way theres no need to strip debug symbols
and compress the kernel. in 9front, we use the same 9pcf
kernel on all boot media.

9load has to die.

--
cinap
t***@polynum.com
2012-05-10 14:26:34 UTC
Permalink
Post by c***@gmx.de
9load has to die.
Ideally, yes. I worked, a long time ago, with GRUB and finally realized
that adding feature after feature we were just building another
kernel...
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
Iruatã Souza
2012-05-10 15:52:12 UTC
Permalink
Post by t***@polynum.com
Post by c***@gmx.de
9load has to die.
Ideally, yes. I worked, a long time ago, with GRUB and finally realized
that adding feature after feature we were just building another
kernel...
In practice too. In fact, 9front has removed 9load since forever, and
we are much better this way.
Jens Staal
2012-05-10 12:47:21 UTC
Permalink
Post by t***@polynum.com
Post by yang.zhao
Really? Wonderful..
Is there some docs for install Plan 9(more detail)?
x201 doesn't have a CD-ROM..
Installing Plan9 without a CD reader or a PXE boot.
Abstract
Wow! Thanks. I probably need to look at this. I recently tried (and failed) to
boot a plan9 iso via syslinux and memdisk to circumvent the issue with my
CD/DVD reader failing at a certain point in the boot proces.

If anyone has instructions on making a bootable (install) usb for Plan9 (using
syslinux + iso or other method), I would be very interested in this!.
Preferrably a method that does not require Plan9 to already be installed...

Alternatively, a bootable usb (install) image that can be dd:ed to a usb would
also work...
t***@polynum.com
2012-05-10 14:24:07 UTC
Permalink
Post by Jens Staal
If anyone has instructions on making a bootable (install) usb for Plan9 (using
syslinux + iso or other method), I would be very interested in this!.
Preferrably a method that does not require Plan9 to already be installed...
Alternatively, a bootable usb (install) image that can be dd:ed to a usb would
also work...
I have written done the method I used in my context. But I think you can
customize this---the only thing to "know" is the layout of the Plan9
realm; once this is grasped, there is always a way to do...

Cheers,
--
Thierry Laronde <tlaronde +AT+ polynum +dot+ com>
http://www.kergis.com/
Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
David du Colombier
2012-05-10 15:36:21 UTC
Permalink
Post by Jens Staal
If anyone has instructions on making a bootable (install) usb for
Plan9 (using syslinux + iso or other method), I would be very
interested in this!. Preferrably a method that does not require Plan9
to already be installed...
Alternatively, a bootable usb (install) image that can be dd:ed to a
usb would also work...
You can easily make an bootable Plan 9 USB image by
reading the instructions in mkusbboot(8) and the
/rc/bin/mkusbboot script.

For example, this is how I do it:

http://www.9legacy.org/9legacy/doc/fossil/usb

If you want the installer, you can add the 9pcflop
image, by compiling it yourself or extracting it from
the bootdisk.img included on the Plan 9 CD image.
Then the Fossil file system could be used as an
installation source.

You can make it from Plan 9 or from Unix, using 9vx,
it doesn't matters.

I have an old (2012-01-23) Plan 9 USB image,
available here:

http://www.9legacy.org/download/plan9-usb.img.bz2

I will probably update it soon and I could add the
9pcflop installation image if you wish.
--
David du Colombier
erik quanstrom
2012-05-10 11:49:50 UTC
Permalink
Post by Charles Forsyth
On one of my Atoms I found that actually the problem (on that hardware) was
that Plan 9's memory probing was zapping one of the bytes in its tables,
preventing the second CPU from being seen. ("PCMP" changed to 0xCC "CMP").
A recent change to pc/memory.c might have fixed that.
why wasn't your machine using the e820 map?

it's sort of dangerous to probe memory these days with all the magic regions.

- erik
erik quanstrom
2012-05-10 12:23:24 UTC
Permalink
Post by Justin Bedo
I also might have been a little enthusiastic when I said "fine". The
MP tables are broken so you can't use the second core. Other than
that the video works great as does ethernet.
many machines i've seen recently have a broken mp table for
ht processors, or processors after 0, so i added the ability to
read the acpi processor table to 9atom. that might help you
out, depending on what the problem is.

- erik
Jack Norton
2012-05-10 12:57:34 UTC
Permalink
Post by yang.zhao
Really? Wonderful..
Is there some docs for install Plan 9(more detail)?
x201 doesn't have a CD-ROM..
Thx.
--
K.I.S.S.
The 9front bootloader can boot from a USB disk. You can then throw a
plan9 iso on the disk and go from there.
http://code.google.com/p/plan9front/wiki/usbboot

I'd think you would be able to use a lab's plan9 iso in place of the
9front iso listed in that wiki. I've never tried so don't get crabby if
it doesn't work. It will work just fine however, as written.

-Jack
Charles Forsyth
2012-05-10 15:15:38 UTC
Permalink
If you're using USB, why would you bother with ISO format?
Post by Jack Norton
The 9front bootloader can boot from a USB disk. You can then throw a
plan9 iso on the disk and go from there.
Jack Norton
2012-05-10 15:22:26 UTC
Permalink
Post by Charles Forsyth
If you're using USB, why would you bother with ISO format?
The 9front bootloader can boot from a USB disk. You can then throw
a plan9 iso on the disk and go from there.
Just pure convenience I suppose. And by that I of course mean lazyness.
Chances are I've got an iso laying around and would ensure me a fresh
install.
Well, I'm done defending that ISO idea. 6 of 1, half dozen of another I
suppose.

-Jack
Charles Forsyth
2012-05-10 15:32:14 UTC
Permalink
ok. I wanted to check there wasn't some horrible PC-related restriction.
hiro
2012-05-10 08:55:09 UTC
Permalink
Post by s***@9front.org
http://en.wikipedia.org/wiki/Mini_PCI#Mini_PCI
http://en.wikipedia.org/wiki/Pcmcia
ah. I confused mini pci express with expresscard.
s***@9front.org
2012-05-09 19:18:47 UTC
Permalink
http://www.thinkwiki.org/wiki/Category:X61_Tablet

-sl
John Floren
2012-05-09 19:46:08 UTC
Permalink
I've got one of those with the 1400x1050 display, it runs Plan 9 well,
looks great, and has a fantastic screen.

john
Post by s***@9front.org
http://www.thinkwiki.org/wiki/Category:X61_Tablet
-sl
s***@9front.org
2012-05-09 21:26:14 UTC
Permalink
Post by John Floren
Post by s***@9front.org
http://www.thinkwiki.org/wiki/Category:X61_Tablet
I've got one of those with the 1400x1050 display, it runs Plan 9 well,
looks great, and has a fantastic screen.
Nice!

-sl
Tristan
2012-05-10 03:04:55 UTC
Permalink
Post by Vincent Zhao
I will buy laptop pre-installed with plan9, can my dream come true?
I'm trying to make it. Though more a programmer's tablet than a laptop.

Take care,
Tristan
Peter A. Cejchan
2012-05-14 06:40:30 UTC
Permalink
Post by Vincent Zhao
I will buy laptop pre-installed with plan9, can my dream come true?
I have a working Thinkpad T23 with 1400x1050 video, for years. The
only trouble is that it needs a small program to restore video after
the lid was closed. Works great for me, and is not expensive today.
Best regards,

++pac
Jack Johnson
2012-05-17 15:41:28 UTC
Permalink
Quick tangent, is there anyone out there whose favorite environment is
non-native? Maybe 9vx or plan9ports on specific hardware? Your secret
sam port to Windows 8's Metro UI?

For all I know, plan9ports full screen on a MacBook Air is Glenda's
Elysian field. Maybe something dual-screen with Chrome on the next
monitor over. I know someone out there has a setup they've nestled
into and are slightly cringing at the thought of his or her next
machine or OS transition because right now life is good.

-Jack
Charles Forsyth
2012-05-17 16:02:30 UTC
Permalink
Plan 9 doesn't run native on my last two notebooks (not handling wireless,
anyway), so I've been using an
older version of 9vx, which has been stable for years. I run it full
screen, on Ubuntu, mainly alternating between that and Chrome.
I'm tempted to try to get native working again for me, because I'm fed up
with Linux rolling back its ext4 file system
(by losing the journal when something goes wrong, which it has done,
silently).

On the rare occasions when I use Mac or Windows I use drawterm.

I run Plan 9 native on several server sets, though, and several ARMs.
Jack Norton
2012-05-17 16:16:11 UTC
Permalink
Post by Jack Johnson
Quick tangent, is there anyone out there whose favorite environment is
non-native? Maybe 9vx or plan9ports on specific hardware? Your secret
sam port to Windows 8's Metro UI?
For all I know, plan9ports full screen on a MacBook Air is Glenda's
Elysian field. Maybe something dual-screen with Chrome on the next
monitor over. I know someone out there has a setup they've nestled
into and are slightly cringing at the thought of his or her next
machine or OS transition because right now life is good.
-Jack
All the things you describe here sound like a user interface hellscape.
Especially the macbook air and plan9port. I'd rather use a slide rule
and some cocktail napkins.
I drawterm to a few native/qemu-kvm servers and I've got a limping
netbook that runs native. More native to come. I stay away from
non-native plan9 tools. They end up being frustrating to me. My
slackware installations already have unix tools. Sometimes simplicity
is better found using what you've got, rather than shoehorning some
"better solution" into some unwilling host.

-jack
Charles Forsyth
2012-05-17 16:28:38 UTC
Permalink
Oh. other jack's email reminds me: I have used qemu/kvm to debug x86
kernels before I run them native.
It's easier for instance than trying to run two machines on an aircraft,
though you can run two on a train.
I have got plan9ports on the notebooks, to provide some sane commands when
I have to run outside 9vx.
/bin/rc is one, but most of the GNU/Linux ones do bizarre things (using the
LANG= locale inappropriately, for a start).
Ethan Grammatikidis
2012-05-17 17:09:36 UTC
Permalink
On Thu, 17 May 2012 07:41:28 -0800
Post by Jack Johnson
Quick tangent, is there anyone out there whose favorite environment is
non-native? Maybe 9vx or plan9ports on specific hardware? Your secret
sam port to Windows 8's Metro UI?
For all I know, plan9ports full screen on a MacBook Air is Glenda's
Elysian field. Maybe something dual-screen with Chrome on the next
monitor over. I know someone out there has a setup they've nestled
into and are slightly cringing at the thought of his or her next
machine or OS transition because right now life is good.
Heheh... I wouldn't say no to a MacBook Air but between 9vx and
drawterm, p9p is fast fading from my radar. I only use 9term any more
and that for the occasional locate or find command, or for git.
Sometimes I also sudo ed, but no more often than I sudo vi in an xterm.
I once found p9p acme run as root to be a great idea for configuring a
Linux system but there was a bug with win which reams the Linux pty
subsystem. I should roleplay less and get more involved with bug-fixing
and code, but I keep saying that. Also what Jack said.

Besides that, my Elysian field has namespaces. I love running one acme
(with plumber) per task, which afaik you can't do in p9p. It's not
quite the perfection of convenience, but anything I think of to improve
on it brings other inconveniences mostly related to window management.
The result is when I want to edit something non-root in Linux I
typically do so from drawterm. If it's root-owned and too large a
change for ed, I either sudo cp or (more usually) temporarily chown it.

As for usability, drawterm is a little buggy. It doesn't really like me
running a web browser and sometimes gets in a state where what's
visible doesn't correspond to what menus are appearing, but it hasn't
done that since I started shutting down the Linux box (and thus
drawterm) every day. Come to think of it 9vx actually gave me fewer
problems, but I never really tried running a web browser in it. Nothing
else in Plan 9 allocates such a large number of images as mothra and
abaco, afaik. I use abaco all the time for my roleplaying, btw, I like
it. It handles Simple Machines forums quite nicely, and most of my
comics too.
Justin Bedo
2012-05-17 17:31:58 UTC
Permalink
Post by Ethan Grammatikidis
I use abaco all the time for my roleplaying, btw, I like
it. It handles Simple Machines forums quite nicely, and most of my
comics too.
I tried to use abaco but it doesn't seem to like google's website.
Clicking any of the results links shows a redirection error page from
google. I haven't had any time to look into this problem yet.
Burton Samograd
2012-05-17 17:34:36 UTC
Permalink
Post by Justin Bedo
I tried to use abaco but it doesn't seem to like google's website.
Clicking any of the results links shows a redirection error page from google.
Seconded. Google searching is a pain using abaco.

--
Burton Samograd



This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
erik quanstrom
2012-05-17 17:36:52 UTC
Permalink
abaco was confused about how relative urls work.
i've attached the file i'm using (which has some
extra differences), and here's the diff

- erik

---

/n/dump/2012/0220/sys/src/cmd/abaco/urls.c:173,237 - urls.c:173,246
void
urlcanon(Rune *name)
{
- Rune *s, *t, *tail;
+ Rune *s, *e, *tail, tailr;
Rune **comp, **p, **q;
- int rooted;
+ int n;

- name = runestrchr(name, L'/')+2;
- rooted = name[0]==L'/';
+ name = runestrstr(name, L"://");
+ if(name == nil)
+ return;
+ name = runestrchr(name+3, '/');
+ if(name == nil)
+ return;
+ if(*name == L'/')
+ name++;
+
+ n = 0;
+ for(e = name; *e != 0; e++)
+ if(*e == L'/')
+ n++;
+ comp = emalloc((n+2)*sizeof *comp);
+
/*
* Break the name into a list of components
*/
- comp = emalloc(runestrlen(name)*sizeof *comp);
p = comp;
*p++ = name;
tail = nil;
- for(s = name;; s++){
+ tailr = L'☺'; /* silence compiler */
+ for(s = name; *s != 0; s++){
if(*s == '?' || *s == '#'){
- tail = s;
+ tail = s+1;
+ tailr = *s;
+ *s = 0;
break;
}
else if(*s == L'/'){
*p++ = s+1;
- *s = '\0';
+ *s = 0;
}
- else if(*s=='\0')
- break;
}
- *p=0;
+
/*
* go through the component list, deleting components that are empty (except
- * the last component) or ., and any .. and its non-.. predecessor.
+ * the last component) or ., and any .. and its predecessor.
*/
- p=q=comp;
- while(*p){
- if(runestrcmp(*p, L"")==0 && p[1]!=0
- || runestrcmp(*p, L".")==0)
- p++;
- else if(runestrcmp(*p, L"..")==0 && q!=comp && runestrcmp(q[-1], L"..")!=0){
- --q;
- p++;
- }
+ for(p = q = comp; *p != nil; p++){
+ if(runestrcmp(*p, L"") == 0 && p[1] != nil
+ || runestrcmp(*p, L".") == 0)
+ continue;
+ else if(q>comp && runestrcmp(*p, L"..") == 0 && runestrcmp(q[-1], L"..") != 0)
+ q--;
else
- *q++=*p++;
+ *q++ = *p;
}
- *q = 0;
+ *q = nil;
+
/*
* rebuild the path name
*/
s = name;
- if(rooted)
- *s++ = '/';
- for(p = comp; *p; p++){
- t = *p;
- while(*t)
- *s++ = *t++;
- if(p[1] != 0)
- *s++='/';
+ for(p = comp; p<q; p++){
+ n = runestrlen(*p);
+ memmove(s, *p, sizeof(Rune)*n);
+ s += n;
+ if(p[1] != nil)
+ *s++ = '/';
}
+ *s = 0;
if(tail)
- memmove(s, tail, runestrlen(tail));
- *s = '\0';
+ runeseprint(s, e+1, "%C%S", tailr, tail);
free(comp);
}
Ethan Grammatikidis
2012-05-18 14:36:39 UTC
Permalink
On Thu, 17 May 2012 13:36:52 -0400
Post by erik quanstrom
abaco was confused about how relative urls work.
i've attached the file i'm using (which has some
extra differences), and here's the diff
Thanks! I'll push that to 9front if it works with their webfs.
Burton Samograd
2012-05-18 14:44:33 UTC
Permalink
Post by Ethan Grammatikidis
Post by erik quanstrom
abaco was confused about how relative urls work.
i've attached the file i'm using (which has some extra differences),
and here's the diff
Thanks! I'll push that to 9front if it works with their webfs.
I applied the patch to my 9front abaco source and it worked as advertised
(as in clicking on Google search result links now work).

--
Burton Samograd


This e-mail, including accompanying communications and attachments, is strictly confidential and only for the intended recipient. Any retention, use or disclosure not expressly authorised by Markit is prohibited. This email is subject to all waivers and other terms at the following link: http://www.markit.com/en/about/legal/email-disclaimer.page

Please visit http://www.markit.com/en/about/contact/contact-us.page? for contact information on our offices worldwide.
c***@gmx.de
2012-05-18 16:26:43 UTC
Permalink
tested, commited. theres a little thing thats different with
9front webfs. if the server doesnt return a "Content-Type"
response header, the "contenttype" attribute file will not
appear in the connection directory. (this is true for all
response headers).

--
cinap
erik quanstrom
2012-05-18 16:57:10 UTC
Permalink
Post by c***@gmx.de
tested, commited. theres a little thing thats different with
9front webfs. if the server doesnt return a "Content-Type"
response header, the "contenttype" attribute file will not
appear in the connection directory. (this is true for all
response headers).
the web is not plan 9 compliant.

- erik
Christoph Lohmann
2012-05-18 19:24:02 UTC
Permalink
Greetings.
Post by erik quanstrom
the web is not plan 9 compliant.
That's really offtopic.


Sincerely,

Christoph Lohmann

Jack Norton
2012-05-17 17:43:06 UTC
Permalink
Post by Justin Bedo
Post by Ethan Grammatikidis
I use abaco all the time for my roleplaying, btw, I like
it. It handles Simple Machines forums quite nicely, and most of my
comics too.
I tried to use abaco but it doesn't seem to like google's website.
Clicking any of the results links shows a redirection error page from
google. I haven't had any time to look into this problem yet.
This works in mothra with webfs. I like mothra much better than abaco.
It is included in 9front, or alternatively grab it from the 9front
google code page. It uses 9front's webfs as well.

-Jack
Justin Bedo
2012-05-17 18:18:04 UTC
Permalink
Post by Jack Norton
This works in mothra with webfs. I like mothra much better than abaco.
It is included in 9front, or alternatively grab it from the 9front
google code page. It uses 9front's webfs as well.
Yes I tried this, and it worked perfectly fine. However I prefer the
abaco interface. Is it possible to copy/paste in mothra?
s***@9front.org
2012-05-17 18:35:26 UTC
Permalink
Post by Justin Bedo
Is it possible to copy/paste in mothra?
No. But it does have moth mode.

-sl
Richard Miller
2012-05-17 21:43:22 UTC
Permalink
Post by Ethan Grammatikidis
Besides that, my Elysian field has namespaces.
+1
erik quanstrom
2012-05-17 22:20:41 UTC
Permalink
Post by Ethan Grammatikidis
Besides that, my Elysian field has namespaces.
+1
better than angry french motorists.

- erik
Ethan Grammatikidis
2012-05-18 14:40:51 UTC
Permalink
On Thu, 17 May 2012 18:20:41 -0400
Post by erik quanstrom
Post by Ethan Grammatikidis
Besides that, my Elysian field has namespaces.
+1
better than angry french motorists.
I can handle angry French motorists better than I can handle how Linux
these days.
Continue reading on narkive:
Loading...