bobart |
|
Темы:
38
Сообщения:
2537
Участник с: 28 ноября 2009
|
Привет. Это касается тех, у кого после обновления udev-160-1 > 161-1 и т.д. перестали нормально монтироваться CD, DVD и прочее. Не буду долго описывать как был достигнут сегодняшний результат. Приложили руку Amigo (в качестве пинателя в нужном направлениии), S.Pupykin (аналогично, плюс советы по промежуточным решениям) и vadik, в качестве сборщика, пинателя и сообщника. Иными словами “всем спасибо”. Теперь о пакете. Он собирается на основе udev/trank с http://repos.archlinux.org/wsvn/packages/udev/trunk/ и исходников с http://git.kernel.org/?p=linux/hotplug/udev.git;a=tree Почему-то не могу прикрепить файл архива (чьи происки?), поэтому: 1. Качаете архив отсюда: http://repos.archlinux.org/wsvn/packages/udev/trunk/ 2. Распаковываете в произвольную папку сборки (например ~/udev_test), удаляете оттуда “arch-udev-rules.patch” (он всё равно пустой). 3. Заменяете оригинальный PKGBUILD из архива этим: # This is an example PKGBUILD file. Use this as a start to creating your own, # and remove these comments. For more information, see 'man PKGBUILD'. # NOTE: Please fill out the license field for your package! If it is unknown, # then please put 'unknown'. # See http://wiki.archlinux.org/index.php/VCS_PKGBUILD_Guidelines # for more information on packaging from GIT sources. # Contributor: Your Name <[email protected] pkgname=udev pkgver=20100903 pkgrel=1 pkgdesc="" arch=(i686 x86_64) url="http://git.kernel.org/" license=('GPL') groups=('base') depends=() makedepends=('git' 'glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection' 'gtk-doc' ) provides=() conflicts=() replaces=() backup=() options=() noextract=() source=(80-drivers.rules 81-arch.rules load-modules.sh cdsymlinks.sh) md5sums=('4427855146513a4703ab5c7eb8a0156e' 'f17c99779173ddc79f866cf3a5de5e68' 'f91fddc67609b45b244a624977c4247b' '2e808ee78d237c478b57af2a68d43769') _gitroot="git://git.kernel.org/pub/scm/linux/hotplug/udev.git" _gitname="udev" build() { cd "$srcdir" msg "Connecting to GIT server...." if [ -d $_gitname ] ; then cd $_gitname && git pull origin msg "The local files are updated." else git clone $_gitroot $_gitname fi msg "GIT checkout done or server timeout" msg "Starting make..." rm -rf "$srcdir/$_gitname-build" git clone "$srcdir/$_gitname" "$srcdir/$_gitname-build" cd "$srcdir/$_gitname-build" # # BUILD HERE # ./autogen.sh --without-selinux ./configure --prefix="" --mandir=/usr/share/man\ --includedir=/usr/include\ --libexecdir=/lib/udev\ --datarootdir=/usr/share make } package_udev() { pkgdesc="The userspace dev tools (udev)" depends=('glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'module-init-tools>=3.11') install=udev.install backup=(etc/udev/udev.conf etc/modprobe.d/framebuffer_blacklist.conf) conflicts=('pcmcia-cs' 'hotplug' 'initscripts<2009.07') replaces=('devfsd') cd "$srcdir/$_gitname-build" make DESTDIR=${pkgdir} install # Fix pkgconfig path install -d -m755 $pkgdir/usr/lib mv $pkgdir/lib/pkgconfig $pkgdir/usr/lib # Fix ConsoleKit path mv $pkgdir/lib/ConsoleKit $pkgdir/usr/lib # Replace original 80-drivers.rules with custom one. install -D -m644 $srcdir/80-drivers.rules $pkgdir/lib/udev/rules.d/80-drivers.rules # Install our rule for permissions and symlinks install -D -m644 $srcdir/81-arch.rules $pkgdir/lib/udev/rules.d/81-arch.rules # install our module loading subsystem install -D -m755 $srcdir/load-modules.sh $pkgdir/lib/udev/load-modules.sh # install cdsymlinks.sh install -D -m755 $srcdir/cdsymlinks.sh $pkgdir/lib/udev/cdsymlinks.sh # disable error logging to prevent startup failures printed to vc on boot sed -i -e 's|udev_log="err"|udev_log="0"|g' $pkgdir/etc/udev/udev.conf # disable persistent cdromsymlinks and network by default # and move it to /etc/udev/rules.d mv $pkgdir/lib/udev/rules.d/75-persistent-net-generator.rules \ $pkgdir/etc/udev/rules.d/75-persistent-net-generator.rules.optional mv $pkgdir/lib/udev/rules.d/75-cd-aliases-generator.rules \ $pkgdir/etc/udev/rules.d/75-cd-aliases-generator.rules.optional # create framebuffer blacklist mkdir -p $pkgdir/etc/modprobe.d/ for mod in $(find /lib/modules/*/kernel/drivers/video -name '*fb.ko' -exec basename {} .ko \;); do echo "blacklist $mod" >> $pkgdir/etc/modprobe.d/framebuffer_blacklist.conf done # create static devices in /lib/udev/devices/ mkdir ${pkgdir}/lib/udev/devices/pts mkdir ${pkgdir}/lib/udev/devices/shm mknod -m 0600 ${pkgdir}/lib/udev/devices/console c 5 1 mknod -m 0666 ${pkgdir}/lib/udev/devices/null c 1 3 mknod -m 0660 ${pkgdir}/lib/udev/devices/zero c 1 5 mknod -m 0666 ${pkgdir}/lib/udev/devices/kmsg c 1 11 ln -snf /proc/self/fd ${pkgdir}/lib/udev/devices/fd ln -snf /proc/self/fd/0 ${pkgdir}/lib/udev/devices/stdin ln -snf /proc/self/fd/1 ${pkgdir}/lib/udev/devices/stdout ln -snf /proc/self/fd/2 ${pkgdir}/lib/udev/devices/stderr ln -snf /proc/kcore ${pkgdir}/lib/udev/devices/core # these static devices are created for convenience, to autoload the modules if necessary # /dev/loop0 mknod -m 0660 ${pkgdir}/lib/udev/devices/loop0 b 7 0 chgrp disk ${pkgdir}/lib/udev/devices/loop0 # /dev/net/tun mkdir ${pkgdir}/lib/udev/devices/net mknod -m 0666 ${pkgdir}/lib/udev/devices/net/tun c 10 200 # /dev/fuse mknod -m 0666 ${pkgdir}/lib/udev/devices/fuse c 10 229 # /dev/ppp mknod -m 0600 ${pkgdir}/lib/udev/devices/ppp c 108 0 # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group for i in $pkgdir/lib/udev/rules.d/*.rules; do sed -i -e 's#GROUP="dialout"#GROUP="uucp"#g; s#GROUP="tape"#GROUP="storage"#g; s#GROUP="cdrom"#GROUP="optical"#g' $i done mv "${pkgdir}/lib/girepository-1.0" "${pkgdir}/usr/lib/" } 80-drivers.rules 81-arch.rules cdsymlinks.sh load-modules.sh PKGBUILD udev.install 5. cd ~/папка_сборки && makepkg Ну, и конечно pacman -U udev-20100903-1-i686.pkg.tar.xz PS. Проверено на Linux arch 2.6.35-ARCH #1 SMP PREEMPT Fri Aug 27 16:22:18 UTC 2010 i686 Intel(R) Core(TM)2 Duo CPU E8200 @ 2.66GHz GenuineIntel GNU/Linux |
sw |
|
Темы:
0
Сообщения:
35
Участник с: 07 февраля 2009
|
однако ;) ./autogen.sh: line 3: gtkdocize: команда не найдена Преждевременный выход… так, для сведения ;) |
vadik |
|
Темы:
55
Сообщения:
5395
Участник с: 17 августа 2009
|
Аналогично, причем пакет base-devel установлен. |
bobart |
|
Темы:
38
Сообщения:
2537
Участник с: 28 ноября 2009
|
У меня собралось без выкрутасов. Разруливаем… PS/ Добавил в зависимости для сборки ‘gtk-doc’ makedepends=('git' 'glibc' 'coreutils' 'util-linux' 'libusb' 'glib2' 'kernel26' 'gperf' 'libxslt' 'gobject-introspection' 'gtk-doc' ) [email protected]:~$ pacman -Q gtk-doc gtk-doc 1.14-2 |
sw |
|
Темы:
0
Сообщения:
35
Участник с: 07 февраля 2009
|
щас проверю ))) есть, правда, нюанс - откат не предыдущую версию udev проблемы automount не решил, возможно мой pcmanfm глючит. ps проверил - пакет собирается, но проблемы не решает, возможно таки pcmanfm-git pps да, вопрос решен, поправил polkit, обновил pcmanfm, но - где зарыли собаку теперь уже не узнать ;) bobart благодарю за проделанную работу )) |
bobart |
|
Темы:
38
Сообщения:
2537
Участник с: 28 ноября 2009
|
Незачто. Благодарности отсылай выше (см. первое сообщение), а мне не влом было повозиться. Методом тыка нащупалось решение. зы. Где эта собака сейчас уже только разработчики знают. Один из команды (git.kernel.org, мантейнер Martin Pitt) сделал патч, потом пакет, уже пропатченный - он и висит в гите. Арчевские - правила сборки и доп. скрипты. А я оказался за свою инициативу “крайним”, он мне ответил на письмо и я попал) |