Compiling a new Kernel

Why Compile a Kernel?

Compiling a kernel means that you have exactly the features required for your machine, and nothing that you do not want. What I will attempt to do here is to step you through creating a kernel that is good for the Acer machine. It will have everything that is essential compiled into the kernel itself. There will be lots of modules created for those with other bits of hardware to bolt on. Note: I do not know everything about the machine, I think that people will be able to improve on what I suggest. If so, then please email me.

Note: If you want to use X Window, then you will almost certainly need to compile a Kernel, the 2.4 kernel does not, by default, support the SIS650 chipset. We will need to do a little bit extra to get this to work.

Note: If the idea of compiling the kernel scares you, I have created some Debian packages that you can use to get the Kernel described below without getting your hands too dirty.

Obtaining Kernel Sources

The Debian kernel sources were (unsurpisingly because they're on CD) out of date. You can use these as a starting point, and apply patches. However, I chose to just download all of the source for 2.4.20 from www.kernel.org. This will probably give you a linux-2.4.20.tar.gz file.

I placed my source code in /root/kernel/2.4.20. The Debian package we create will place them in /usr/src once we install it - but that's some way off yet.

You probably want to read the README file now!

How do I get the Kernel Sources to the Linux partition?

There isn't that much to do in order to get Windows download ready. So, use this to download the sources if you do not have another means. Save them to the D: partition. When you reboot into Linux, and assuming that you have altered the /etc/fstab file correctly, then you should find that you can read files from the /shared directory.

Updating the Frame Buffer

The frame buffer is a device that allows access to the video hardware. The video controller in the 273 is not directly supported by 2.4 kernels, you need to download some extra files and overwrite existing files in the source tree.

To get these files, you need to go to http://www.winischhofer.net/ The guy here is the god of SIS video chips and Linux. Read the information if you feel like it, otherwise just follow the instructions here. Initially we will only set up the framebuffer, the full X work will happen later, and we will need more stuff from Thomas's website.

Go to the download section and download the sisfb source. At the time of writing, I downloaded source that had last been updated 25th Nov 2002. If you download more recent source, then the instructions given here might not match exactly. Please check with the README file.

Updating ACPI

I have spent quite some time trying to get everything working. One of the things that I wanted to work was a battery meter. It appears that APM is not supported by the BIOS on the Acer. This isn't a problem for Windows, becuase it use ACPI. However, 2.4.20 did not provide the battery information. To rectify this, I downloaded the ACPI patch for 2.4.20 (acpi20021212-2.4.20.diff.gz). I patched the kernel with this file. Hence, in the configuration options listed below, you will find that they are not exaclty the same as the plain 2.4.20 configuration options.

By the way, although I can read the battery state, I haven't got a working power meter!

Configuring the kernel

Before doing any kind of configuration, a quick make mrproper gets rid of any unwanted files. This should be done in the directory containing the unpacked source files. With a clean set of source files, this is unlikely to be necessary but a good step to do anyway. Note that this will purge your config file, so save it if you have done previous configuration work. The configuration is held in a file called .config

There are a number of ways of configuring the kernel. I stick to the old make config because it will present all options (I have had some problems with the menu one). If you do want to use the menu one (make menuconfig), then you will need to install the libncurses5-dev package.

The following table presents one possible set of configuration options. I have chosen to set things up on my machine this way to provide support for everything I definitely need in the kernel, and nearly everything else (even quite obscure stuff) as modules. This means that it is a good, general purpose configuration for this machine. I think that I have covered all devices but I am not 100% sure. For people new to Linux, it is educational (if dull) to go through the make config process. For those that would rather avoid this tedium, then the config file created from the following table can be downloaded here. Remember to rename it to .config

The table below describes the kernel options that are relevant to an Acer 273XC. The changes to the default options are marked like this:

OptionValueNotes
CONFIG_EXPERIMENTALY 
CONFIG_MODULESY 
CONFIG_MODVERSIONSY 
CONFIG_KMODY 
ProcessorPentium-4 
CONFIG_X86_MCEYAlthough it says that you need to specify a boot option to enable MCE, it is enabled by default; no boot option is required.
CONFIG_TOSHIBAN 
CONFIG_I8KN 
CONFIG_MICROCODEN 
CONFIG_X86_MSRN 
CONFIG_X86_CPUIDN 
High Memory SupportOff 
CONFIG_MATH_EMULATIONN 
CONFIG_MTRRY 
CONFIG_SMPN 
CONFIG_X86_UP_APICN 
CONFIG_X86_TSC_DISABLEN 
CONFIG_NETY 
CONFIG_PCIY 
PCI Access ModeAny 
CONFIG_ISANI said no here because they only thing that I think might use the ISA bus are the hardware sensors which I couldn't get to work.
CONFIG_PCI_NAMESY 
CONFIG_EISANI don't think that the machine has an EISA bus
CONFIG_MCANI don't think that the machine has an MCA bus
CONFIG_HOTPLUGY 
CONFIG_PCMCIAY 
CONFIG_CARDBUSY 
CONFIG_TCICN 
CONFIG_I82092N 
CONFIG_T82365N 
CONFIG_HOTPLUG_PCIN 
CONFIG_SYSVIPCY 
CONFIG_BSD_PROCESS_ACCTN 
CONFIG_SYSCTLY 
Kernel CoreELF 
CONFIG_BINFMT_AOUTm 
CONFIG_BINFMT_ELFY 
CONFIG_BINFMT_MISCm 
CONFIG_PMY 
CONFIG_APMNI have tried to compile a kernel with APM support but I get a message about APM not being found in the BIOS at boot time.
CONFIG_ACPIyThe options you see below will not match plain 2.4.20 source, these are for the ACPI patch
CONFIG_ACPI_ACy 
CONFIG_ACPI_BATTERYy 
CONFIG_ACPI_BUTTONN 
CONFIG_ACPI_FANN 
CONFIG_ACPI_PROCESSORy 
CONFIG_ACPI_THERMALY 
CONFIG_ACPI_TOSHIBAN 
CONFIG_ACPI_DEBUGN 
CONFIG_MTDN 
CONFIG_PARPORTm 
CONFIG_PARPORT_PCm 
CONFIG_PARPORT_SERIALm 
CONFIG_PARPORT_PC_FIFON 
CONFIG_PARPORT_PC_SUPERION 
CONFIG_PARPORT_PC_PCMCIAN 
CONFIG_PARPORT_OTHERN 
CONFIG_PARPORT_1284N 
CONFIG_PNPNNo ISA bus so surely no ISA PNP?
CONFIG_ISAPNPNNo ISA bus so surely no ISA PNP?
CONFIG_BLK_DEV_FDY 
CONFIG_PARIDEm 
CONFIG_PARIDE_PDm 
CONFIG_PARIDE_PCDm 
CONFIG_PARIDE_PFm 
CONFIG_PARIDE_PTm 
CONFIG_PARIDE_PGm 
CONFIG_PARIDE_ATENm 
CONFIG_PARIDE_BPCKm 
CONFIG_PARIDE_BPCK6m 
CONFIG_PARIDE_COMMm 
CONFIG_PARIDE_DSTRm 
CONFIG_PARIDE_FIT2m 
CONFIG_PARIDE_FIT3m 
CONFIG_PARIDE_EPATm 
CONFIG_PARIDE_EPATC8y 
CONFIG_PARIDE_PPIAm 
CONFIG_PARIDE_FRIQm 
CONFIG_PARIDE_FRPWm 
CONFIG_PARIDE_KBICm 
CONFIG_PARIDE_KTTIm 
CONFIG_PARIDE_ON20m 
CONFIG_PARIDE_ON26m 
CONFIG_BLK_CPQ_DAN 
CONFIG_BLK_CISS_DAN 
CONFIG_BLK_DEV_DAC960N 
CONFIG_BLK_DEV_UMEMN 
CONFIG_BLK_DEV_LOOPN 
CONFIG_BLK_DEV_NBDN 
CONFIG_BLK_STATSN 
CONFIG_MDN 
CONFIG_PACKETY 
CONFIG_PACKET_MMAPN 
CONFIG_NETLINK_DEVN 
CONFIG_NETFILTERYPersonally, I want to selectively reject traffic. Including that initiating from my machine.
CONFIG_NETFILTER_DEBUGN 
CONFIG_FILTERN 
CONFIG_UNIXY 
CONFIG_INETY 
CONFIG_IP_MULTICASTN 
CONFIG_IP_ADVANCED_ROUTERN 
CONFIG_IP_PNPN 
CONFIG_NET_IPIPN 
CONFIG_NET_IPGREN 
CONFIG_ARPDN 
CONFIG_INET_ECNN 
CONFIG_SYN_COOKIESN 
CONFIG_IP_NF_CONNTRACKm 
CONFIG_IP_NF_FTPm 
CONFIG_IP_NF_IRCm 
CONFIG_IP_NF_QUEUEN 
CONFIG_IP_NF_IPTABLESm 
CONFIG_IP_NF_MATCH_LIMITm 
CONFIG_IP_NF_MATCH_MACm 
CONFIG_IP_NF_MATCH_PKTTYPEm 
CONFIG_IP_NF_MATCH_MARKm 
CONFIG_IP_NF_MATCH_MULTIPORTm 
CONFIG_IP_NF_MATCH_TOSm 
CONFIG_IP_NF_MATCH_ECNm 
CONFIG_IP_NF_MATCH_DSCPm 
CONFIG_IP_NF_MATCH_AH_ESPm 
CONFIG_IP_NF_MATCH_LENGTHm 
CONFIG_IP_NF_MATCH_TTLm 
CONFIG_IP_NF_MATCH_TCPMSSm 
CONFIG_IP_NF_MATCH_HELPERm 
CONFIG_IP_NF_MATCH_STATEm 
CONFIG_IP_NF_MATCH_CONNTRACKm 
CONFIG_IP_NF_MATCH_UNCLEANm 
CONFIG_IP_NF_MATCH_OWNERm 
CONFIG_IP_NF_FILTERm 
CONFIG_IP_NF_TARGET_REJECTm 
CONFIG_IP_NF_TARGET_MIRRORm 
CONFIG_IP_NF_TARGET_NATm 
CONFIG_IP_NF_TARGET_MASQUERADEm 
CONFIG_IP_NF_TARGET_REDIRECTm 
CONFIG_IP_NF_TARGET_REJECTn 
CONFIG_IP_NF_NAT_SNMP_BASICn 
CONFIG_IP_NF_MANGLEm 
CONFIG_IP_NF_TARGET_TOSm 
CONFIG_IP_NF_TARGET_ECNm 
CONFIG_IP_NF_TARGET_DSCPm 
CONFIG_IP_NF_TARGET_MARKm 
CONFIG_IP_NF_TARGET_LOGm 
CONFIG_IP_NF_TARGET_ULOGm 
CONFIG_IP_NF_TARGET_TCPMSSm 
CONFIG_IP_NF_TARGET_ARPTABLESm 
CONFIG_IP_NF_ARPFILTERm 
CONFIG_IP_NF_COMPAT_IPCHAINSN 
CONFIG_IP_NF_COMPAT_IPFWADMN 
CONFIG_IPV6N 
CONFIG_KHTTPDN 
CONFIG_ATMN 
CONFIG_VLAN_8021QN 
CONFIG_IPXN 
CONFIG_ATALKN 
CONFIG_DECNETN 
CONFIG_BRIDGEN 
CONFIG_X25N 
CONFIG_LAPBN 
CONFIG_LLCN 
CONFIG_NET_DIVERTN 
CONFIG_ECONETN 
CONFIG_IP_WAN_ROUTERN 
CONFIG_NET_FASTROUTEN 
CONFIG_NET_HW_FLOWCONTROLN 
CONFIG_IP_NF_COMPAT_IPCHAINSN 
CONFIG_NET_SCHEDN 
CONFIG_NET_PKTGENN 
CONFIG_PHONEN 
CONFIG_IDEY 
CONFIG_BLK_DEV_IDEY 
CONFIG_BLK_DEV_HD_IDEN 
CONFIG_BLK_DEV_IDEDISKY 
CONFIG_IDEDISK_MULTI_MODEY 
CONFIG_IDEDISK_STROKEN 
CONFIG_BLK_DEV_IDECSm 
CONFIG_BLK_DEV_IDECDY 
CONFIG_BLK_DEV_IDETAPEm 
CONFIG_BLK_DEV_IDEFLOPPYm 
CONFIG_BLK_DEV_IDESCSIm 
CONFIG_IDE_TASK_IOCTLN 
CONFIG_BLK_DEV_CMD640n 
CONFIG_BLK_DEV_RZ1000n 
CONFIG_BLK_DEV_IDEPCIY 
CONFIG_IDEPCI_SHARE_IRQY 
CONFIG_BLK_DEV_IDEDMA_PCIY 
CONFIG_BLK_DEV_OFFBOARDN 
CONFIG_BLK_DEV_IDEDMA_FORCEDN 
CONFIG_IDEDMA_PCI_AUTOY 
CONFIG_IDEDMA_ONLYDISKN 
CONFIG_IDEDMA_PCI_WIPN 
CONFIG_BLK_DEV_AEC62XXN 
CONFIG_BLK_DEV_ALI15X3N 
CONFIG_BLK_DEV_AMD74XXN 
CONFIG_BLK_DEV_CMD64XN 
CONFIG_BLK_DEV_CY82C693N 
CONFIG_BLK_DEV_CS5530N 
CONFIG_BLK_DEV_HPT34XN 
CONFIG_BLK_DEV_HPT366N 
CONFIG_BLK_DEV_PIIXnThis is taken as the default, but we don't have one.
CONFIG_BLK_DEV_NS87415N 
CONFIG_BLK_DEV_OPTI621N 
CONFIG_BLK_DEV_PDC202XXN 
CONFIG_BLK_DEV_SVWKSN 
CONFIG_BLK_DEV_SIS5513yWe definitely have one of these though!
CONFIG_BLK_DEV_SLC90E66N 
CONFIG_BLK_DEV_TRM290N 
CONFIG_BLK_DEV_VIA82CXXXN 
CONFIG_IDEDMA_IVBN 
CONFIG_BLK_DEV_ATARAIDN 
CONFIG_SCSIm 
CONFIG_BLK_DEV_SDM 
CONFIG_SD_EXTRA_DEVS40 
CONFIG_BLK_DEV_ATARAIDm 
CONFIG_CHR_DEV_OSSTN 
CONFIG_BLK_DEV_SRm 
CONFIG_BLK_DEV_SR_VENDORN 
CONFIG_SR_EXTRA_DEVS2 
CONFIG_CHR_DEV_SGm 
CONFIG_SCSI_DEBUG_QUEUESY 
CONFIG_SCSI_MULTI_LUNY 
CONFIG_SCSI_CONSTANTSY 
CONFIG_SCSI_LOGGINGY 
CONFIG_BLK_DEV_3W_XXXX_RAIDN 
CONFIG_SCSI_7000FASSTN 
CONFIG_SCSI_ACARDN 
CONFIG_SCSI_AHA152XN 
CONFIG_SCSI_AHA1542N 
CONFIG_SCSI_AHA1740N 
CONFIG_SCSI_AACRAIDN 
CONFIG_SCSI_AIC7XXXN 
CONFIG_SCSI_AIC7XXX_OLDN 
CONFIG_SCSI_DPT_I2ON 
CONFIG_SCSI_ADVANSYSN 
CONFIG_SCSI_IN2000N 
CONFIG_SCSI_AM53C974N 
CONFIG_SCSI_MEGARAIDN 
CONFIG_SCSI_BUSLOGICN 
CONFIG_SCSI_CPQFCTSN 
CONFIG_SCSI_DMX3191DN 
CONFIG_SCSI_DTC3280N 
CONFIG_SCSI_EATAN 
CONFIG_SCSI_EATA_DMAN 
CONFIG_SCSI_EATA_PION 
CONFIG_SCSI_FUTURE_DOMAINN 
CONFIG_SCSI_GDTHN 
CONFIG_SCSI_GENERIC_NCR5380N 
CONFIG_SCSI_IPSN 
CONFIG_SCSI_INITION 
CONFIG_SCSI_INIA100N 
CONFIG_SCSI_PPAm 
CONFIG_SCSI_IMMm 
CONFIG_SCSI_IZIP_EPP16N 
CONFIG_SCSI_IZIP_SLOW_CTRN 
CONFIG_SCSI_NCR53C406AN 
CONFIG_SCSI_NCR53C7xxN 
CONFIG_SCSI_SYM53C8XX_2N 
CONFIG_SCSI_NCR53C8XXN 
CONFIG_SCSI_SYM53C8XXn 
CONFIG_SCSI_PAS16N 
CONFIG_SCSI_PCI2000N 
CONFIG_SCSI_PCI2220IN 
CONFIG_SCSI_PSI240IN 
CONFIG_SCSI_QLOGIC_FASN 
CONFIG_SCSI_QLOGIC_ISPN 
CONFIG_SCSI_QLOGIC_FCN 
CONFIG_SCSI_SEAGATEN 
CONFIG_SCSI_SIM710N 
CONFIG_SCSI_SYM53C416N 
CONFIG_SCSI_DC390TN 
CONFIG_SCSI_T128N 
CONFIG_SCSI_U14_34FN 
CONFIG_SCSI_ULTRASTORN 
CONFIG_SCSI_DEBUGN 
CONFIG_SCSI_PCMCIAY 
CONFIG_PCMCIA_AHA152Xm 
CONFIG_PCMCIA_FDOMAINm 
CONFIG_PCMCIA_NINJA_SCSIm 
CONFIG_PCMCIA_QLOGICm 
CONFIG_PCMCIA_AHA152Xm 
CONFIG_FUSIONN 
CONFIG_IEEE1394m 
CONFIG_IEEE1394_OHCI1394m 
CONFIG_IEEE1394_VIDEO1394m 
CONFIG_IEEE1394_SBP2m 
CONFIG_IEEE1394_SBP2_PHYS_DMAN 
CONFIG_IEEE1394_ETH1394m 
CONFIG_IEEE1394_DVI1394m 
CONFIG_IEEE1394_RAWIOm 
CONFIG_IEEE1394_CMPm 
CONFIG_IEEE1394_AMDTPm 
CONFIG_IEEE1394_VERBOSEDEBUGN 
CONFIG_I2ON 
CONFIG_NETDEVICESY 
CONFIG_ARCNETN 
CONFIG_DUMMYM 
CONFIG_BONDINGm 
CONFIG_EQUALIZERm 
CONFIG_TUNN 
CONFIG_ETHERTAPN 
CONFIG_NET_ETHERNETY 
CONFIG_HAPPYMEALN 
CONFIG_SUNGEMN 
CONFIG_NET_VENDOR_3COMN 
CONFIG_NET_VENDOR_SMCN 
CONFIG_NET_VENDOR_RACALN 
CONFIG_HP100N 
CONFIG_NET_PCIY 
CONFIG_PCNET32N 
CONFIG_ADAPTEC_STARFIREN 
CONFIG_TULIPN 
CONFIG_DE4X5N 
CONFIG_DGRSN 
CONFIG_PCNET32N 
CONFIG_DM9102N 
CONFIG_EEPRO100n 
CONFIG_E100N 
CONFIG_FEALNXN 
CONFIG_NATSEMIN 
CONFIG_NE2K_PCIN 
CONFIG_8139CPN 
CONFIG_8139TOOyThis is the network chip in the Acer.
CONFIG_8139TOO_PION 
CONFIG_8139TOO_TUNE_TWISTERN 
CONFIG_8139TOO_8129N 
CONFIG_8139_OLD_RX_RESETN 
CONFIG_SIS900N 
CONFIG_EPIC100N 
CONFIG_SUNDANCEN 
CONFIG_TLANN 
CONFIG_TC35815N 
CONFIG_PCNET32N 
CONFIG_VIA_RHINEN 
CONFIG_WINBOND_840N 
CONFIG_NET_POCKETy 
CONFIG_ACENICN 
CONFIG_DL2KN 
CONFIG_E1000N 
CONFIG_NS83820N 
CONFIG_HAMACHIN 
CONFIG_YELLOWFINN 
CONFIG_SK98LINN 
CONFIG_TIGON3N 
CONFIG_PCNET32N 
CONFIG_FDDIN 
CONFIG_HIPPIN 
CONFIG_PLIPm 
CONFIG_PPPm 
CONFIG_PPP_MULTILINKN 
CONFIG_PPP_ASYNCm 
CONFIG_PPP_SYNC_TTYN 
CONFIG_PPP_DEFLATEm 
CONFIG_PPP_BSDCOMPN 
CONFIG_PPPOEN 
CONFIG_SLIPN 
CONFIG_NET_RADION 
CONFIG_TRN 
CONFIG_NET_FCN 
CONFIG_RCPCIN 
CONFIG_SHAPERN 
CONFIG_WANN 
CONFIG_NET_PCMCIAY 
CONFIG_PCMCIA_3C589m 
CONFIG_PCMCIA_3C574m 
CONFIG_PCMCIA_FMVJ18Xm 
CONFIG_PCMCIA_PCNETY 
CONFIG_PCMCIA_AXNETm 
CONFIG_PCMCIA_NMCLANm 
CONFIG_PCMCIA_SMC91C92m 
CONFIG_PCMCIA_XIRC2PSm 
CONFIG_PCMCIA_XIRCOMm 
CONFIG_PCMCIA_XIRTULIPm 
CONFIG_NET_PCMCIA_RADIOY 
CONFIG_PCMCIA_RAYCSm 
CONFIG_PCMCIA_NETWAVEm 
CONFIG_PCMCIA_WAVELANm 
CONFIG_PCMCIA_AIRONET4500_CSm 
CONFIG_HAMRADION 
CONFIG_IRDAN 
CONFIG_ISDNN 
CONFIG_INPUTm 
CONFIG_INPUT_KEYBDEVm 
CONFIG_INPUT_MOUSEDEVm 
CONFIG_INPUT_MOUSEDEV_SCREEN_X1024 
CONFIG_INPUT_MOUSEDEV_SCREEN_Y768 
CONFIG_INPUT_JOYDEVm 
CONFIG_INPUT_EVDEVm 
CONFIG_VTY 
CONFIG_VT_CONSOLEY 
CONFIG_SERIALY 
CONFIG_SERIAL_CONSOLEN 
CONFIG_SERIAL_EXTENDEDN 
CONFIG_SERIAL_NONSTANDARDN 
CONFIG_UNIX98_PTYSY 
CONFIG_UNIX98_PTY_COUNT256 
CONFIG_PRINTERm 
CONFIG_LP_CONSOLEN 
CONFIG_PPDEVN 
CONFIG_I2CNI spent a long time getting the Kernel compiled for sensors. However, they did not seem to be able to read any useful information.
CONFIG_BUSMOUSEN 
CONFIG_MOUSEY 
CONFIG_PSMOUSEY 
CONFIG_82C710_MOUSEN 
CONFIG_PC110_PADN 
CONFIG_MK712_MOUSEN 
CONFIG_INPUT_GAMEPORTN 
CONFIG_INPUT_SERION 
CONFIG_INPUT_IFORCE_USBm 
CONFIG_INPUT_DB9N 
CONFIG_INPUT_GAMECONN 
CONFIG_INPUT_TURBOGRAFXN 
CONFIG_QIC02_TAPEN 
CONFIG_WATCHDOGN 
CONFIG_AMD_RNGN 
CONFIG_INTEL_RNGN 
CONFIG_AMD_PM768N 
CONFIG_NVRAMN 
CONFIG_RTCMCharacter Device 10-135 has already been created. If we don't support it, then there will be some horrible messages at boot.
CONFIG_DTLKN 
CONFIG_R3964N 
CONFIG_APPLICOMN 
CONFIG_CONFIG_SONYPCIN 
CONFIG_FTAPEN 
CONFIG_AGPY 
CONFIG_AGP_INTELn 
CONFIG_AGP_I810n 
CONFIG_AGP_VIAn 
CONFIG_AGP_AMDn 
CONFIG_AGP_AMD_8151N 
CONFIG_AGP_SISY 
CONFIG_AGP_ALIn 
CONFIG_AGP_SWORKSN 
CONFIG_AGP_SISY 
CONFIG_DRMY 
CONFIG_DRM_OLDN 
CONFIG_DRM_TDFXn 
CONFIG_DRM_R128N 
CONFIG_DRM_RADEONn 
CONFIG_DRM_I810n 
CONFIG_DRM_I830N 
CONFIG_DRM_MGAN 
CONFIG_DRM_SISy 
CONFIG_PCMCIA_SERIAL_CSm 
CONFIG_SYNCLINK_CSN 
CONFIG_MWAVEN 
CONFIG_VIDEO_DEVm 
CONFIG_VIDEO_PROC_FSy 
CONFIG_I2C_PARPORTN 
CONFIG_VIDEO_BT848N 
CONFIG_VIDEO_PMSN 
CONFIG_VIDEO_BWQCAMN 
CONFIG_VIDEO_CQCAMN 
CONFIG_VIDEO_CPIAm 
CONFIG_VIDEO_CPIA_USBm 
CONFIG_VIDEO_SAA5249N 
CONFIG_TUNER_3036N 
CONFIG_VIDEO_STRADISN 
CONFIG_VIDEO_ZORANN 
CONFIG_VIDEO_ZR36120N 
CONFIG_RADIO_GEMTEK_PCIN 
CONFIG_RADIO_MAXIRADION 
CONFIG_RADIO_MAESTRON 
CONFIG_RADIO_MIROPCM20N 
CONFIG_QUOTAN 
CONFIG_AUTOFS_FSN 
CONFIG_AUTOFS4_FSn 
CONFIG_REISERFS_FSN 
CONFIG_ADFS_FSN 
CONFIG_AFFS_FSN 
CONFIG_HFS_FSN 
CONFIG_BEFS_FSN 
CONFIG_BFS_FSN 
CONFIG_EXT3_FSy 
CONFIG_JBD_DEBUGN 
CONFIG_FAT_FSy 
CONFIG_MSDOS_FSy 
CONFIG_UMSDOS_FSN 
CONFIG_VFAT_FSy 
CONFIG_EFS_FSN 
CONFIG_CRAMFSN 
CONFIG_EFS_FSN 
CONFIG_TMPFSY 
CONFIG_ISO9660_FSY 
CONFIG_JOLIETy 
CONFIG_ZISOFSN 
CONFIG_JFS_FSN 
CONFIG_MINIX_FSN 
CONFIG_VXFS_FSN 
CONFIG_NTFS_FSy 
CONFIG_NTFS_RWN 
CONFIG_HPFS_FSN 
CONFIG_PROC_FSY 
CONFIG_DEVFS_FSN 
CONFIG_DEVPTS_FSY 
CONFIG_QNX4FS_FSN 
CONFIG_ROMFS_FSN 
CONFIG_EXT2_FSY 
CONFIG_SYSV_FSN 
CONFIG_UDF_FSN 
CONFIG_UFS_FSN 
CONFIG_CODA_FSN 
CONFIG_INTERMEZZO_FSN 
CONFIG_NFS_FSm 
CONFIG_NFS_V3y 
CONFIG_NFSDm 
CONFIG_NFSD_V3y 
CONFIG_NFSD_TCPN 
CONFIG_SMB_FSm 
CONFIG_SMB_NLS_DEFAULTN 
CONFIG_NCP_FSN 
CONFIG_PARTITION_ADVANCEDN 
CONFIG_NLS_DEFAULTiso8859-1 
CONFIG_NLS_CODEPAGE_437y 
CONFIG_NLS_CODEPAGE_737N 
CONFIG_NLS_CODEPAGE_775N 
CONFIG_NLS_CODEPAGE_850y 
CONFIG_NLS_CODEPAGE_852N 
CONFIG_NLS_CODEPAGE_855N 
CONFIG_NLS_CODEPAGE_857N 
CONFIG_NLS_CODEPAGE_860N 
CONFIG_NLS_CODEPAGE_861N 
CONFIG_NLS_CODEPAGE_862N 
CONFIG_NLS_CODEPAGE_863N 
CONFIG_NLS_CODEPAGE_864N 
CONFIG_NLS_CODEPAGE_865N 
CONFIG_NLS_CODEPAGE_866N 
CONFIG_NLS_CODEPAGE_869N 
CONFIG_NLS_CODEPAGE_936N 
CONFIG_NLS_CODEPAGE_950N 
CONFIG_NLS_CODEPAGE_932N 
CONFIG_NLS_CODEPAGE_949N 
CONFIG_NLS_CODEPAGE_874N 
CONFIG_NLS_ISO8859_8N 
CONFIG_NLS_CODEPAGE_1250N 
CONFIG_NLS_CODEPAGE_1251N 
CONFIG_NLS_ISO8859_1y 
CONFIG_NLS_ISO8859_2N 
CONFIG_NLS_ISO8859_3N 
CONFIG_NLS_ISO8859_4N 
CONFIG_NLS_ISO8859_5N 
CONFIG_NLS_ISO8859_6N 
CONFIG_NLS_ISO8859_9N 
CONFIG_NLS_ISO8859_13N 
CONFIG_NLS_ISO8859_14N 
CONFIG_NLS_ISO8859_15y 
CONFIG_NLS_KO18_RN 
CONFIG_NLS_KO18_UN 
CONFIG_NLS_UTF8y 
CONFIG_VGA_CONSOLEY 
CONFIG_VIDEO_SELECTy 
CONFIG_MDA_CONSOLEN 
CONFIG_FBy 
CONFIG_FB_RIVAN 
CONFIG_FB_CLGENN 
CONFIG_FB_PM2N 
CONFIG_FB_PM3N 
CONFIG_FB_CYBER2000N 
CONFIG_FB_VESAN 
CONFIG_FB_HGAN 
CONFIG_FB_MATROXN 
CONFIG_FB_ATYN 
CONFIG_FB_RADEONN 
CONFIG_FB_ATY128N 
CONFIG_FB_SISy 
CONFIG_FB_SIS_300y 
CONFIG_FB_SIS_315y 
CONFIG_FB_NEOMAGICN 
CONFIG_FB_3DFXN 
CONFIG_FB_VOODOO1N 
CONFIG_FB_TRIDENTN 
CONFIG_FB_VIRTUALN 
CONFIG_FBCON_ADVANCEDN 
CONFIG_FBCON_FONTWIDTH8_ONLYN 
CONFIG_FBCON_FONTSN 
CONFIG_SOUNDY 
CONFIG_SOUND_ALI5455N 
CONFIG_SOUND_BT878N 
CONFIG_SOUND_CMPCIN 
CONFIG_SOUND_EMU10K1N 
CONFIG_SOUND_FUSIONN 
CONFIG_SOUND_CS4281N 
CONFIG_SOUND_ES1370N 
CONFIG_SOUND_ES1371n 
CONFIG_SOUND_ESSSOLO1N 
CONFIG_SOUND_MAESTRON 
CONFIG_SOUND_MAESTRO3N 
CONFIG_SOUND_FORTEN 
CONFIG_SOUND_ICHy 
CONFIG_SOUND_RME96XXN 
CONFIG_SOUND_SONICVIBESN 
CONFIG_SOUND_TRIDENTN 
CONFIG_SOUND_MSNDCLASN 
CONFIG_SOUND_MSNDPINN 
CONFIG_SOUND_VIA82CXXXN 
CONFIG_SOUND_OSSN 
CONFIG_SOUND_TVMIXERN 
CONFIG_USBY 
CONFIG_USB_DEBUGN 
CONFIG_USB_DEVICEFSy 
CONFIG_USB_BANDWIDTHN 
CONFIG_USB_LONG_TIMEOUTN 
CONFIG_USB_EHCI_HCDN 
CONFIG_USB_UHCI_ALTn 
CONFIG_USB_OHCIy 
CONFIG_USB_AUDIOm 
CONFIG_USB_EMI26m 
CONFIG_USB_BLUETOOTHm 
CONFIG_USB_MIDIm 
CONFIG_USB_STORAGEM 
CONFIG_USB_STORAGE_DEBUGN 
CONFIG_USB_STORAGE_DATAFABN 
CONFIG_USB_STORAGE_FREECOMy 
CONFIG_USB_STORAGE_ISD200y 
CONFIG_USB_STORAGE_DPCMy 
CONFIG_USB_STORAGE_HP8200ey 
CONFIG_USB_STORAGE_SDDR09y 
CONFIG_USB_STORAGE_SDDR55y 
CONFIG_USB_STORAGE_JUMPSHOTy 
CONFIG_USB_ACMm 
CONFIG_USB_PRINTERm 
CONFIG_USB_HIDm 
CONFIG_USB_HIDINPUTy 
CONFIG_USB_HIDDEVy 
CONFIG_USB_KBDN 
CONFIG_USB_MOUSEN 
CONFIG_USB_AIPTEKm 
CONFIG_USB_WACOMm 
CONFIG_USB_DC2XXm 
CONFIG_USB_MDC800N 
CONFIG_USB_SCANNERm 
CONFIG_USB_MICROTEKm 
CONFIG_USB_HPUSBSCSIN 
CONFIG_USB_IBMCAMm 
CONFIG_USB_OV511m 
CONFIG_USB_PWCm 
CONFIG_USB_SE401m 
CONFIG_USB_STV680m 
CONFIG_USB_VICAMN 
CONFIG_USB_DSBRN 
CONFIG_USB_DABUSBm 
CONFIG_USB_PEGASUSm 
CONFIG_USB_RTL8150m 
CONFIG_USB_KAWETHm 
CONFIG_USB_CATCm 
CONFIG_USB_CDCETHERm 
CONFIG_USB_USBNETm 
CONFIG_USB_USS720m 
CONFIG_USB_SERIALm 
CONFIG_USB_SERIAL_GENERICy 
CONFIG_USB_SERIAL_BELKINm 
CONFIG_USB_SERIAL_WHITEHEATm 
CONFIG_USB_SERIAL_DIGI_ACELEPORTm 
CONFIG_USB_SERIAL_EMPEGm 
CONFIG_USB_SERIAL_FTDI_SIOm 
CONFIG_USB_SERIAL_VISORm 
CONFIG_USB_SERIAL_IPAQm 
CONFIG_USB_SERIAL_IRm 
CONFIG_USB_SERIAL_EDGEPORTm 
CONFIG_USB_SERIAL_EDGEPORT_TIm 
CONFIG_USB_SERIAL_KEYSPAN_PDAm 
CONFIG_USB_SERIAL_KEYSPANm 
CONFIG_USB_SERIAL_KEYSPAN_USA28N 
CONFIG_USB_SERIAL_KEYSPAN_USA28XN 
CONFIG_USB_SERIAL_KEYSPAN_USA28XAN 
CONFIG_USB_SERIAL_KEYSPAN_USA28XBN 
CONFIG_USB_SERIAL_KEYSPAN_USA19N 
CONFIG_USB_SERIAL_KEYSPAN_USA18XN 
CONFIG_USB_SERIAL_KEYSPAN_USA19WN 
CONFIG_USB_SERIAL_KEYSPAN_USA19QWN 
CONFIG_USB_SERIAL_KEYSPAN_USA49WN 
CONFIG_USB_SERIAL_MCT_U232m 
CONFIG_USB_SERIAL_KLSIm 
CONFIG_USB_SERIAL_PL2303m 
CONFIG_USB_SERIAL_CYBERJACKm 
CONFIG_USB_SERIAL_XIRCOMm 
CONFIG_USB_SERIAL_OMNINETm 
CONFIG_USB_RIO500m 
CONFIG_USB_AVERSWALDm 
CONFIG_USB_TIGLm 
CONFIG_USB_BRLVGERm 
CONFIG_USB_LCDm 
CONFIG_BLUEZN 
CONFIG_DEBUG_KERNELN 

Compiling the Kernel and Modules

Once you have completed configuring the kernel, it is time to compile the Kernel. You could do this completely yourself, and not let Debian know about the new Kernel. If so, then follow the instructions provided by the README.

I want to do things the Debian way, so I created a kernel package. For this to work, you must have installed the kernel-package package.

You need to issue the following command:
make-kpkg buildpackage --append-to-version acer273
This will take a long time to execute. Once it has finished, there will be four packages in the /root/kernel directory. These are:

Note that these packages were built using the changes for the SIS video chip.

Installing the new Kernel and Modules

To install the new kernel code, we must install the new packages. This can be done by running the following commands:

The dselect program is a front-end for dpkg. We knew exactly where the files are, and so could use dpkg directly. I don't know if we could have used dselect here.

If you are asked about LILO but you use GRUB (like me), then do not let it set up any LILO file, boot records, etc.

Downloading the Kernel Packages

If you don't fancy building the kernel packages yourself, then you can download them here: