The purpose of this repository is to merge and clean up several of the forks available. A merge into the mainline kernel seems possible; the binary blob is under the GPL, but we don't have the source.
Ready distro:
If you've packaged it for another distro, please send me the link and I'll add it.
git clone git://github.com/Manouchehri/smi2021.git
cd smi2021/
You can build that module one of the two options: as internal
or as external
(out-of-tree) module.
if you have been collecting both ways - don't forget that in every way the final installation path of the module are different:
internal =
/lib/modules/`uname -r`/kernel/drivers/media/usb/smi2021/smi2021.ko
external =
/lib/modules/`uname -r`/extra/smi2021.ko
It might be possible - two different module will be in two different place at the same time - don't forget to delete the old module if you change the type of Assembly.
Build as internal:
smi2021
from Get source step in you kernel source tree into folder drivers/media/usb/
Device Drivers -> Multimedia support -> Media USB Adapters -> Somagic SMI2021 USB video/audio capture support
as module or build-inSomagic SMI2021 USB video/audio capture support
as module - install modules too.On build it as module - that module installs in
/lib/modules/`uname -r`/kernel/drivers/media/usb/smi2021/smi2021.ko
Build as external (out-of-tree) module.
VIDEO_DEV && I2C && SND && USB
SND_PCM
VIDEO_SAA711X
= Device Drivers -> Multimedia support -> Encoders, decoders, sensors and other helper chips -> Philips SAA7111/3/4/5 video decoders
VIDEOBUF2_VMALLOC
= I simple chose in menuconfig: Device Drivers -> Multimedia support -> Media USB Adapters -> USB Video Class
- it have needed dependency for VIDEOBUF2_VMALLOC
Im most case, in blank
Encoders, decoders, sensors and other helper chips
andMedia USB Adapters
- when you not selectCameras/video grabbers support
. Also sufficient UNselectAutoselect ancillary drivers (tuners, sensors, i2c, frontends)
for viewEncoders, decoders, sensors and other helper chips
in list.NOTE: "modules_prepare" will not build Module.symvers even if CONFIG_MODVERSIONS is set; therefore, a full kernel build needs to be executed to make module versioning work. To build against the running kernel use:
make -C /lib/modules/`uname -r`/build M=$PWD
- Build module with run
make
in source directory. You can use targets:modules
as defaultmodules_install clean help
andclean_all
. You can use envCROSS_COMPILE, ARCH, KDIR
and-j
too.- Install builded module with
make modules_install
.NOTE: It installs in
/lib/modules/`uname -r`/extra/smi2021.ko
After installing the module, you will have to copy firmware/smi2021_3c.bin
(md5sum: 90f78491e831e8db44cfdd6204a2b602
) as /usr/lib/firmware/smi2021_3c.bin
. If you Google the hash, you'll find guides that explain how to extract it.
forceasgm=1
forceasgm=1
saa7115
module proper init you device (need once on first install, or new linux distrib, or with new smi2021 device(for proper check what they detected correct)).
For that check, you need
modprobe -r saa7115; modprobe saa7115 debug=1
saa7115 8-004a: gm7113c found @ 0x94 (smi2021)
If detection not work, or work notproper - try use forceasgm=1
module option. For build as part of kernel and use override - be added additional options in Kconfig.David Manouchehri
Jon Arne Jørgensen - jonjon.arnearne@gmail.com
mastervolkov - mastervolkov@gmail.com