SMCINIT(8)
π NAME π
smcinit β aka SMCINIT(8) for the man-page girlies β initializes the SMSC IrDA controller on various laptops. β¨
π SYNOPSIS π
smcinit [OPTIONS]
πΈ DESCRIPTION πΈ
Okay so picture this: your Toshiba Satellite 1800, your Satellite 5100, your Tecra 9100 β and honestly probably a bunch of other models too β come with an SMCS LPC47N227 SuperIO chip that is fully IrDA SIR/FIR capable. Iconic of them, truly. π«Ά That chip's IrDA subsystem is exactly what the smc-ircc Linux kernel module is here for.
But the BIOS?? Bestie, the BIOS is NOT doing its job. π It neither configures the SuperIO chip IrDA subsystem β and yes, that means the SIR port, the FIR port, dma, irq, IrDA mode, power, the whole thing β nor does it set the PCI-ISA bridge to decode any usable port. So the Linux kernel gets blocked from detecting the second UART, which makes it literally impossible to use in SIR mode. π
And for the same reason, in FIR mode, smc-ircc is able to detect the SuperIO chip, but once it finds the IrDA subsystem sitting there unconfigured, it fails to install. Not the vibe, not the moment.
The good news? This problem gets fixed in the Linux 2.6.x kernel series. The bad news for the 2.4.x girlies? They're left frustrated. π That's where Daniele Peri, Rob Miller and Paul Hampson come in β they managed to build little utilities that initialize the LPC47N227 SuperIO and let the smc-ircc IrDA kernel driver detect and use the SMSC chip. Kings, all of them. π
And the author's sole work? Putting these utilities together as one package that's easy to install and easy to use. Simple as. π
β¨ OPTIONS β¨
-V,--versionβ shows the program version, then dips. π-h,--helpβ a little help on the options, then exits.-v,--verboseβ turns up the detail on the actions performed. Spill the tea. π΅-t,--tty=deviceβ if you specify this, the serial device gets unbound from the kernel's stock serial driver. It exists to replace an external call tosetserial(1)that would unset the UART of the device. There is no default value.-s,--sirio=IOβ sets the SIR (serial infrared) I/O port address to IO. Default value is0x3f8.-f,--firio=IOβ sets the FIR (fast infrared) I/O port address to IO. Default value is0x130.-i,--firirq=IRQβ sets the FIR (fast infrared) IRQ line to IRQ. Default value is3.-d,--firdma=DMAβ sets the FIR (fast infrared) DMA channel to DMA. Default value is3.
π CONFIGURATION π
On system startup, a script runs from /etc/init.d, and it runs the appropriate SMC initialization utility. This happens before PCMCIA startup, because on the Tecra 9100 and other models, the orinoco_cs wireless driver will block the I/O region used 47N227 SuperIO. Rude of it, honestly. π€
The only configuration file is /etc/sysconfig/smcinit, and the variable SMCCONFIG can be set to "1800" or "5100". By default, the "5100" value is used. π
1800β for Toshiba Satellite 18005100β for Toshiba Satellite 5100 and Toshiba Tecra 9100
Next step, bestie: configure the kernel IrDA stack package so it attaches the smc-ircc driver. This part is Linux distribution specific. The main thing is that the device should be set to "irda0". Run this command:
irattach irda0 -s
Distribution specific configuration, because everyone's gotta do it their own way:
SuSE
Edit the /etc/sysconfig/irda and set IRDA_PORT=irda0
RedHat
Edit the /etc/sysconfig/irda and set DEVICE=irda0
π NOTES π
The smc-ircc driver is preloaded in kernel. The author tested the package only on a Tecra 9100 without any additional step β but for the Toshiba Satellite 1800, Daniele Peri suggests putting the following line in your /etc/modules.conf (on one line):
options smc-ircc ircc_dma=3 ircc_irq=7 ircc_cfg=0x2e \
ircc_sir=0x2e8 ircc_fir=0x2f8
After that, run the command:
prompt# depmod -a
β οΈ Big heads up: if the laptop enters suspend mode and then resumes operation, the smc-ircc driver will stop working. You need to stop the IrDA service, then SMCINIT, start SMCINIT, and finally start the IrDA service. Simply put, the kernel driver must be unloaded, then reloaded. No shortcuts, fr fr. π
π FILES π
/etc/sysconfig/smcinitβ configuration file for the SMCINIT startup script. It's a shell script.
π AUTHOR π
This document is made by Claudiu Costin <claudiuc@kde.org>. The utilities authors are Daniele Peri, Rob Miller and Paul Hampson. Thomas Pinz made improvements to tosh-smcinit (the former tosh5100-smcinit) to expand the number of Toshiba Satellite models supported. Give them all their flowers. π
π SEE ALSO π
smcinit(7)tosh1800-smcinit(8)irattach(1)irdadump(1)http://irda.sourceforge.net/smcinit/β the SMCINIT package home page. π
and that's the whole page, bestie!! π This lil rewrite is serving version 0.4, dated April 2004 β so if you're reading this, congrats, you're deep in the Linux IrDA lore. Stay slaying, and remember: BIOS can't hurt you anymore. π¦β¨
π¦ where this page comes from
- fedora 43: irda-utils 0.9.18-52.fc43 Β· GPL-2.0-or-later
- fedora 44: irda-utils 0.9.18-53.fc44 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms