カーネル動きました。
下のほうでSTD_SERIAL_PORT_DFNSをしっかり定義していると、こんな感じになって起動せず。
KERNELBASE=c0000000 (r6=7fff00 r7=7fff0e) r3=7ffec0 (r4=0 r5=0) Linux version 2.6.23.14-kuroboxHG (root@kuronas) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #2 Fri Jan 25 14:38:47 JST 2008 Early serial console at MMIO 0x80004600 (options '57600n8') console [uart0] enabled BUFFALO Network Attached Storage Series (C) 2002-2005 BUFFALO INC. Zone PFN ranges: DMA 0 -> 32768 Normal 32768 -> 32768 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0 -> 32768 Built 1 zonelists in Zone order. Total pages: 32512 Kernel command line: root=/dev/hda1 console=ttyS0,57600 OpenPIC Version 1.2 (1 CPUs and 11 IRQ sources) at 80040000 PID hash table entries: 512 (order: 9, 2048 bytes) decrementer frequency = 32.768000 MHz Console: colour dummy device 80x25 console handover: boot [uart0] -> real [ttyS0] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 126848k available (2128k kernel code, 728k data, 132k init, 0k highmem) Mount-cache hash table entries: 512 NET: Registered protocol family 16 PCI: Probing PCI hardware PCI: Cannot allocate resource region 1 of device 0000:00:00.0 SCSI subsystem initialized usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 4096 bytes) TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 2, 16384 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered I2C: rs5c372 RTC driver successfully loaded Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250: ttyS0 at MMIO 0x0 (irq = 138) is a 16550A serial8250: ttyS1 at MMIO 0x0 (irq = 137) is a 16550A serial8250.0: ttyS2 at MMIO 0x80004600 (irq = 26) is a 16550A serial8250.1: ttyS3 at MMIO 0x80004500 (irq = 25) is a 16550A RAMDISK driver initialized: 2 RAM disks of 8192K size 1024 blocksize loop: module loaded (以下適当に省略)
まず、IRQが変なことはおいておくとして、シリアルのハンドオーバー(制御の移管)があまりに早く起きてしまって、そしてserialの本当の初期化のときにダブって登録されてしまう。ということは、linkstation.hではシリアルポートを「なし」としておけば良い訳で。
結局、genbakoパッチからの最低限必要な修正点はこんな感じ。
arch/ppc/platforms/linkstation.h
#define SERIAL_PORT_DFNS
なんというか、非常にシンプルこの上なく。なんとなく寂しい。
で、俺様パッチ(上に加えて原クロックを32.768MHz化用)のメモ
arch/ppc/platforms/linkstation.h
#if defined(CONFIG_HGLAN) || defined(CONFIG_HTGL) || defined(CONFIG_KUROBOXHG) #if 0 #define UART_CLK 130041000 /* {32.768MHz*(100% - 0.75%)} * 4 */ #endif #define UART_CLK 130088960 /* 32.768MHz * 4 */ #elif defined(CONFIG_HLAN) || defined(CONFIG_LAN) || defined(CONFIG_KUROBOX) #ifdef CONFIG_SERIAL_DETECT_IRQ #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST|ASYNC_AUTO_IRQ) #else #define STD_COM_FLAGS (ASYNC_BOOT_AUTOCONF|ASYNC_SKIP_TEST) #endif #define STD_SERIAL_PORT_DFNS \ { 0, BASE_BAUD, LINKSTATION_SERIAL_1, 26, STD_COM_FLAGS, /* ttyS0 */ \ iomem_base: (u8 *)LINKSTATION_SERIAL_1, \ io_type: SERIAL_IO_MEM }, \ { 0, BASE_BAUD, LINKSTATION_SERIAL_0, 25, STD_COM_FLAGS, /* ttyS1 */ \ iomem_base: (u8 *)LINKSTATION_SERIAL_0, \ io_type: SERIAL_IO_MEM }, #if 0 #define SERIAL_PORT_DFNS \ STD_SERIAL_PORT_DFNS #endif #define SERIAL_PORT_DFNS
arch/ppc/platforms/linkstation.c
#if defined(CONFIG_KUROBOXHG) freq=32768000; /* 32.768MHz * 4 / 4 */ #if 0 freq=32522240; /* {32.768MHz*(100% - 0.75%)} * 4 / 4 */ #endif #elif defined(CONFIG_KUROBOX)
あと、.configを晒しておくか。(diff config_kuroboxhg .config)
3,4c3,4 < # Linux kernel version: 2.6.23.1 < # Sat Nov 3 16:52:53 2007 --- > # Linux kernel version: 2.6.23.14 > # Fri Jan 25 12:56:06 2008 252a253 > # CONFIG_IP_VS is not set 257c258,363 < # CONFIG_NETFILTER is not set --- > CONFIG_NETFILTER=y > # CONFIG_NETFILTER_DEBUG is not set > > # > # Core Netfilter Configuration > # > CONFIG_NETFILTER_NETLINK=m > CONFIG_NETFILTER_NETLINK_QUEUE=m > CONFIG_NETFILTER_NETLINK_LOG=m > CONFIG_NF_CONNTRACK_ENABLED=m > CONFIG_NF_CONNTRACK=m > CONFIG_NF_CT_ACCT=y > CONFIG_NF_CONNTRACK_MARK=y > # CONFIG_NF_CONNTRACK_EVENTS is not set > CONFIG_NF_CT_PROTO_GRE=m > # CONFIG_NF_CT_PROTO_SCTP is not set > # CONFIG_NF_CT_PROTO_UDPLITE is not set > # CONFIG_NF_CONNTRACK_AMANDA is not set > CONFIG_NF_CONNTRACK_FTP=m > # CONFIG_NF_CONNTRACK_H323 is not set > CONFIG_NF_CONNTRACK_IRC=m > CONFIG_NF_CONNTRACK_NETBIOS_NS=m > CONFIG_NF_CONNTRACK_PPTP=m > # CONFIG_NF_CONNTRACK_SANE is not set > # CONFIG_NF_CONNTRACK_SIP is not set > CONFIG_NF_CONNTRACK_TFTP=m > # CONFIG_NF_CT_NETLINK is not set > CONFIG_NETFILTER_XTABLES=m > CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m > CONFIG_NETFILTER_XT_TARGET_CONNMARK=m > CONFIG_NETFILTER_XT_TARGET_DSCP=m > CONFIG_NETFILTER_XT_TARGET_MARK=m > CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m > CONFIG_NETFILTER_XT_TARGET_NFLOG=m > CONFIG_NETFILTER_XT_TARGET_NOTRACK=m > CONFIG_NETFILTER_XT_TARGET_TRACE=m > CONFIG_NETFILTER_XT_TARGET_TCPMSS=m > CONFIG_NETFILTER_XT_MATCH_COMMENT=m > CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m > CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m > CONFIG_NETFILTER_XT_MATCH_CONNMARK=m > CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m > CONFIG_NETFILTER_XT_MATCH_DCCP=m > CONFIG_NETFILTER_XT_MATCH_DSCP=m > CONFIG_NETFILTER_XT_MATCH_ESP=m > CONFIG_NETFILTER_XT_MATCH_HELPER=m > CONFIG_NETFILTER_XT_MATCH_LENGTH=m > CONFIG_NETFILTER_XT_MATCH_LIMIT=m > CONFIG_NETFILTER_XT_MATCH_MAC=m > CONFIG_NETFILTER_XT_MATCH_MARK=m > CONFIG_NETFILTER_XT_MATCH_POLICY=m > CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m > CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m > CONFIG_NETFILTER_XT_MATCH_QUOTA=m > CONFIG_NETFILTER_XT_MATCH_REALM=m > # CONFIG_NETFILTER_XT_MATCH_SCTP is not set > CONFIG_NETFILTER_XT_MATCH_STATE=m > CONFIG_NETFILTER_XT_MATCH_STATISTIC=m > CONFIG_NETFILTER_XT_MATCH_STRING=m > CONFIG_NETFILTER_XT_MATCH_TCPMSS=m > CONFIG_NETFILTER_XT_MATCH_U32=m > CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m > > # > # IP: Netfilter Configuration > # > CONFIG_NF_CONNTRACK_IPV4=m > # CONFIG_NF_CONNTRACK_PROC_COMPAT is not set > # CONFIG_IP_NF_QUEUE is not set > CONFIG_IP_NF_IPTABLES=m > CONFIG_IP_NF_MATCH_IPRANGE=m > CONFIG_IP_NF_MATCH_TOS=m > CONFIG_IP_NF_MATCH_RECENT=m > CONFIG_IP_NF_MATCH_ECN=m > CONFIG_IP_NF_MATCH_AH=m > CONFIG_IP_NF_MATCH_TTL=m > CONFIG_IP_NF_MATCH_OWNER=m > CONFIG_IP_NF_MATCH_ADDRTYPE=m > CONFIG_IP_NF_FILTER=m > CONFIG_IP_NF_TARGET_REJECT=m > CONFIG_IP_NF_TARGET_LOG=m > CONFIG_IP_NF_TARGET_ULOG=m > CONFIG_NF_NAT=m > CONFIG_NF_NAT_NEEDED=y > CONFIG_IP_NF_TARGET_MASQUERADE=m > CONFIG_IP_NF_TARGET_REDIRECT=m > CONFIG_IP_NF_TARGET_NETMAP=m > # CONFIG_IP_NF_TARGET_SAME is not set > # CONFIG_NF_NAT_SNMP_BASIC is not set > CONFIG_NF_NAT_PROTO_GRE=m > CONFIG_NF_NAT_FTP=m > CONFIG_NF_NAT_IRC=m > CONFIG_NF_NAT_TFTP=m > # CONFIG_NF_NAT_AMANDA is not set > CONFIG_NF_NAT_PPTP=m > # CONFIG_NF_NAT_H323 is not set > # CONFIG_NF_NAT_SIP is not set > CONFIG_IP_NF_MANGLE=m > CONFIG_IP_NF_TARGET_TOS=m > CONFIG_IP_NF_TARGET_ECN=m > CONFIG_IP_NF_TARGET_TTL=m > # CONFIG_IP_NF_TARGET_CLUSTERIP is not set > CONFIG_IP_NF_RAW=m > CONFIG_IP_NF_ARPTABLES=m > CONFIG_IP_NF_ARPFILTER=m > CONFIG_IP_NF_ARP_MANGLE=m 276a383 > CONFIG_NET_CLS_ROUTE=y 849a957 > CONFIG_FONT_8x16=y 854c962,1082 < # CONFIG_SOUND is not set --- > CONFIG_SOUND=m > > # > # Advanced Linux Sound Architecture > # > CONFIG_SND=m > CONFIG_SND_TIMER=m > CONFIG_SND_PCM=m > CONFIG_SND_HWDEP=m > CONFIG_SND_RAWMIDI=m > CONFIG_SND_SEQUENCER=m > # CONFIG_SND_SEQ_DUMMY is not set > CONFIG_SND_OSSEMUL=y > CONFIG_SND_MIXER_OSS=m > CONFIG_SND_PCM_OSS=m > CONFIG_SND_PCM_OSS_PLUGINS=y > CONFIG_SND_SEQUENCER_OSS=y > # CONFIG_SND_DYNAMIC_MINORS is not set > CONFIG_SND_SUPPORT_OLD_API=y > CONFIG_SND_VERBOSE_PROCFS=y > # CONFIG_SND_VERBOSE_PRINTK is not set > # CONFIG_SND_DEBUG is not set > > # > # Generic devices > # > # CONFIG_SND_DUMMY is not set > # CONFIG_SND_VIRMIDI is not set > # CONFIG_SND_MTPAV is not set > # CONFIG_SND_SERIAL_U16550 is not set > # CONFIG_SND_MPU401 is not set > > # > # PCI devices > # > # CONFIG_SND_AD1889 is not set > # CONFIG_SND_ALS300 is not set > # CONFIG_SND_ALS4000 is not set > # CONFIG_SND_ALI5451 is not set > # CONFIG_SND_ATIIXP is not set > # CONFIG_SND_ATIIXP_MODEM is not set > # CONFIG_SND_AU8810 is not set > # CONFIG_SND_AU8820 is not set > # CONFIG_SND_AU8830 is not set > # CONFIG_SND_AZT3328 is not set > # CONFIG_SND_BT87X is not set > # CONFIG_SND_CA0106 is not set > # CONFIG_SND_CMIPCI is not set > # CONFIG_SND_CS4281 is not set > # CONFIG_SND_CS46XX is not set > # CONFIG_SND_CS5530 is not set > # CONFIG_SND_DARLA20 is not set > # CONFIG_SND_GINA20 is not set > # CONFIG_SND_LAYLA20 is not set > # CONFIG_SND_DARLA24 is not set > # CONFIG_SND_GINA24 is not set > # CONFIG_SND_LAYLA24 is not set > # CONFIG_SND_MONA is not set > # CONFIG_SND_MIA is not set > # CONFIG_SND_ECHO3G is not set > # CONFIG_SND_INDIGO is not set > # CONFIG_SND_INDIGOIO is not set > # CONFIG_SND_INDIGODJ is not set > # CONFIG_SND_EMU10K1 is not set > # CONFIG_SND_EMU10K1X is not set > # CONFIG_SND_ENS1370 is not set > # CONFIG_SND_ENS1371 is not set > # CONFIG_SND_ES1938 is not set > # CONFIG_SND_ES1968 is not set > # CONFIG_SND_FM801 is not set > # CONFIG_SND_HDA_INTEL is not set > # CONFIG_SND_HDSP is not set > # CONFIG_SND_HDSPM is not set > # CONFIG_SND_ICE1712 is not set > # CONFIG_SND_ICE1724 is not set > # CONFIG_SND_INTEL8X0 is not set > # CONFIG_SND_INTEL8X0M is not set > # CONFIG_SND_KORG1212 is not set > # CONFIG_SND_MAESTRO3 is not set > # CONFIG_SND_MIXART is not set > # CONFIG_SND_NM256 is not set > # CONFIG_SND_PCXHR is not set > # CONFIG_SND_RIPTIDE is not set > # CONFIG_SND_RME32 is not set > # CONFIG_SND_RME96 is not set > # CONFIG_SND_RME9652 is not set > # CONFIG_SND_SONICVIBES is not set > # CONFIG_SND_TRIDENT is not set > # CONFIG_SND_VIA82XX is not set > # CONFIG_SND_VIA82XX_MODEM is not set > # CONFIG_SND_VX222 is not set > # CONFIG_SND_YMFPCI is not set > > # > # ALSA PowerMac devices > # > > # > # ALSA PowerPC devices > # > > # > # USB devices > # > CONFIG_SND_USB_AUDIO=m > # CONFIG_SND_USB_USX2Y is not set > # CONFIG_SND_USB_CAIAQ is not set > > # > # System on Chip audio support > # > # CONFIG_SND_SOC is not set > > # > # SoC Audio support for SuperH > # > > # > # Open Sound System > # > # CONFIG_SOUND_PRIME is not set 928c1156,1194 < # CONFIG_USB_SERIAL is not set --- > CONFIG_USB_SERIAL=m > CONFIG_USB_SERIAL_GENERIC=y > # CONFIG_USB_SERIAL_AIRCABLE is not set > # CONFIG_USB_SERIAL_AIRPRIME is not set > # CONFIG_USB_SERIAL_ARK3116 is not set > # CONFIG_USB_SERIAL_BELKIN is not set > # CONFIG_USB_SERIAL_WHITEHEAT is not set > # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set > CONFIG_USB_SERIAL_CP2101=m > # CONFIG_USB_SERIAL_CYPRESS_M8 is not set > # CONFIG_USB_SERIAL_EMPEG is not set > CONFIG_USB_SERIAL_FTDI_SIO=m > # CONFIG_USB_SERIAL_FUNSOFT is not set > # CONFIG_USB_SERIAL_VISOR is not set > # CONFIG_USB_SERIAL_IPAQ is not set > CONFIG_USB_SERIAL_IR=m > # CONFIG_USB_SERIAL_EDGEPORT is not set > # CONFIG_USB_SERIAL_EDGEPORT_TI is not set > # CONFIG_USB_SERIAL_GARMIN is not set > # CONFIG_USB_SERIAL_IPW is not set > # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set > # CONFIG_USB_SERIAL_KEYSPAN is not set > # CONFIG_USB_SERIAL_KLSI is not set > # CONFIG_USB_SERIAL_KOBIL_SCT is not set > # CONFIG_USB_SERIAL_MCT_U232 is not set > # CONFIG_USB_SERIAL_MOS7720 is not set > # CONFIG_USB_SERIAL_MOS7840 is not set > # CONFIG_USB_SERIAL_NAVMAN is not set > CONFIG_USB_SERIAL_PL2303=m > # CONFIG_USB_SERIAL_OTI6858 is not set > # CONFIG_USB_SERIAL_HP4X is not set > # CONFIG_USB_SERIAL_SAFE is not set > # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set > # CONFIG_USB_SERIAL_TI is not set > # CONFIG_USB_SERIAL_CYBERJACK is not set > # CONFIG_USB_SERIAL_XIRCOM is not set > # CONFIG_USB_SERIAL_OPTION is not set > # CONFIG_USB_SERIAL_OMNINET is not set > # CONFIG_USB_SERIAL_DEBUG is not set 948c1214,1215 < # CONFIG_USB_SISUSBVGA is not set --- > CONFIG_USB_SISUSBVGA=m > CONFIG_USB_SISUSBVGA_CON=y 1061c1328 < # CONFIG_CRAMFS is not set --- > CONFIG_CRAMFS=m 1168a1436,1439 > CONFIG_TEXTSEARCH=y > CONFIG_TEXTSEARCH_KMP=m > CONFIG_TEXTSEARCH_BM=m > CONFIG_TEXTSEARCH_FSM=m
これでfirewallとサウンドとserialが使えるようになるかしらん。最低限、秋月USBシリアルケーブルと玄人志向のAUDIO5.1-USBを認識することは確認した。お疲れ<俺
あとはクロックがどれだけずれるかの確認。
明日は、休日出勤でシステムの入れ替えと、第2回BPMオフなので、もう寝ないと。
あ、忘れてた。俺メモ。ARCH=ppcはよく忘れる。コマンドラインで指定しておくと吉かなぁ。それとも/etc/bash.bashrcにでも書いておくか。それはいいとして、カーネルコンパイル→インストールまでの手順。
# make ARCH=ppc (2時間くらい) # make ARCH=ppc modules_install (これで/lib/modules/カーネルver/に入る) # cd /boot # mkdir 2.6.20 # mv uImage System.map 2.6.20 (一応動くカーネルを残しておく) # mv loader.o loader.o.nouse (なんとなく) # cd /mnt/share/kernel/linux-2.6.23.14 # cp -p arch/ppc/boot/images/uImage System.map /boot/ # reboot : : # depmod -a (これ大事らしい)
ということでおやすみ〜。