Нови BG огледала на Fedora и CentOS

понеделник, септември 13th, 2010

Благодарение на Йордан Георгиев и Телепойнт Fedora се сдоби с ново огледало.  Нещо, от което имаше нужда след като fedora.lcpe.uni-sofia.bg и mirrors.evrocom.net доста отдавна вече не са на линия и една от най-популярните дистрибуции  – Fedora се оказа само с едно огледало в България (fedora.linuxman.biz). В този ред на мисли с радост посрещнах новината за mirror.telepoint.bg. Бяха се сетили да включат и EPEL, а освен това след направено допитване и отправено запитване от мен решиха да включат и RPMFusion. Така че почти няма пакет, който да не може да се инсталира със скоростта, която предлага Peering-a.

Огледалото включва и CentOS, което също е голяма благина за мен, тъй като е дистрибуцията, която основно ползвам за сървърни инсталации. Макар и с две официални огледала на CentOS, актуално е само едно, така че присъствието му на сървъра на telepoint е плюс.

Ето и пълен списък на това, което включва mirror.telepoint.bg на този етап:

Най-лесният начин да се използва огледалото под Fedora и CentOS е да се инсталира съответно yum-plugin-fastestmirror и yum-fastestmirror.

Другата възможност е изрично да се зададе за mirror да се ползва mirror.telepoint.bg в repo файловете, което във fedora.repo изглежда по следния начин:

cat /etc/yum.repos.d/fedora.repo
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
baseurl=http://mirror.telepoint.bg/fedora/fedora/linux/releases/$releasever/Everything/$basearch/os/
#mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch

Нова опция в yum – history

неделя, декември 13th, 2009

Когато в предишното си писание споменах за проблемите покрай PackageKit, за които се шумеше при излизането на Fedora 12, много хора се питаха как никой от хората ползвали Rawhide не е забелязал такава промяна. Отговорът е прост. Никой (в това число и аз) не ползва графични инструменти от подобен род, когато имаш  yum.

Някъде  някой беше казал (за съжаление не си спомням, къде съм го прочел), че всяка себеуважаваща се съвременна дистрибуция трябва да има добър пакетен мениджър. За Redhat дериватите това е yum. Няма да се спирам на историята на проекта, но не мога да не спомена, че е изминат дълъг път от началото, и че постоянно става все по-добър. Разбира се, има и някои минуси (за мен лично, основно свързани с бързината), но след като в миналата версия бе представен yum-presto (delta rpms), то във Fedora 12 и съответната нова версия на yum (3.2.25), вече имаме yum history. Нещо, което предполагам доста администратори а и потребители безспорно ще оценят, и нещо, от което мисля,  че наистина имаше нужда.

Какво се получаваше преди yum history? Инсталираме даден пакет, който има дадени зависимости, които също се инсталират покрай него. По някаква причина решаваме, че нямаме нужда от въпросната програма и я премахваме. Не всички dependencies инсталирани заедно с нея, винаги се премахват обаче. Какво ни дава history?

Дава ни възможността да се върнем една стъпка назад (undo) и да инсталираме или премахнем, това, което сме инсталирали или премахнали преди това. Получи се малка тафтология, но мисля, че с примерите по-долу нещата ще се изяснят. Възможните опции са: yum history info|list|summary|undo|redo|new

Ето ги и примерите:

[root@Pegasus ~]# yum history
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
ID     | Login user             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
6 |  Nick                | 2009-12-13 00:52 | Install        |    1
5 |  Nick                | 2009-12-13 00:48 | Install        |    4
4 |  Nick                | 2009-12-12 12:02 | Install        |    2
3 |  Nick                | 2009-12-12 11:43 | Install        |    8
2 |  Nick                | 2009-12-12 11:29 | Install        |    2
1 |  Nick                | 2009-12-12 11:20 | E, I, U        |   77

Ако искаме да видим точно определена транзакция, то изпълняваме yum history info ID:

[root@Pegasus ~]# yum history info 2
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
Transaction ID : 2
Begin time     : Sat Dec 12 11:29:54 2009
Begin rpmdb    : 1968:ab76e09445bc9332ee617c5c7bf34a9859e04ade
End time       :            11:30:01 2009 (7 seconds)
End rpmdb      : 1970:c33229c535f6633f7b1ee91e1461fb56c9784e64
User           :
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.7.1-6.fc12.x86_64
    Installed    yum-3.2.25-1.fc12.noarch
    Installed    yum-plugin-fastestmirror-1.1.24-2.fc12.noarch
Packages Altered:
    Install      kmod-nvidia-190.42-1.fc12.8.x86_64
    Dep-Install  kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64

Ако искаме да премахнем промените направени от въпросната транзакция, то изпълняваме yum history undo ID:

[root@Pegasus ~]# yum history undo 2
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
Determining fastest mirrors
 * fedora: fedora.linuxman.biz
 * rpmfusion-free: ftp.upjs.sk
 * rpmfusion-free-updates: ftp.upjs.sk
 * rpmfusion-nonfree: ftp.upjs.sk
 * rpmfusion-nonfree-updates: ftp.upjs.sk
rpmfusion-free-updates                                                                                                                                       | 3.3 kB     00:00
rpmfusion-nonfree-updates                                                                                                                                    | 3.3 kB     00:00
updates                                                                                                                                                      | 4.4 kB     00:00
0 packages excluded due to repository protections
Undoing transaction 2, from Sat Dec 12 11:29:54 2009
    Install      kmod-nvidia-190.42-1.fc12.8.x86_64
    Dep-Install  kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
Resolving Dependencies
--> Running transaction check
---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be erased
---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be erased
--> Finished Dependency Resolution
 
Dependencies Resolved
 
====================================================================================================================================================================================
 Package                                                       Arch                            Version                                     Repository                          Size
====================================================================================================================================================================================
Removing:
 kmod-nvidia                                                   x86_64                          190.42-1.fc12.8                             installed                           0.0
 kmod-nvidia-2.6.31.6-166.fc12.x86_64                          x86_64                          190.42-1.fc12.8                             installed                           11 M
 
Transaction Summary
====================================================================================================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)
 
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : kmod-nvidia-190.42-1.fc12.8.x86_64                                                                                                                           1/2
  Erasing        : kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64                                                                                                  2/2
 
Removed:
  kmod-nvidia.x86_64 0:190.42-1.fc12.8                                         kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8
 
Complete!

Ако отново изпълним yum history list, ще видим, че това е създало нова транзакция:

[root@Pegasus ~]# yum history
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
ID     | Login user             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     7 |  Nick                | 2009-12-13 13:05 | Erase          |    2
     6 |  Nick                | 2009-12-13 00:52 | Install        |    1
     5 |  Nick                | 2009-12-13 00:48 | Install        |    4
     4 |  Nick                | 2009-12-12 12:02 | Install        |    2
     3 |  Nick                | 2009-12-12 11:43 | Install        |    8
     2 |  Nick                | 2009-12-12 11:29 | Install        |    2
     1 |  Nick                | 2009-12-12 11:20 | E, I, U        |   77

и ако решим все пак да върнем нещата назад и да инсталираме отново Kmod-nvidia*, то има два начина да го направим – yum history undo 7, или yum history redo 2:

[root@Pegasus ~]# yum history undo 7
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * fedora: fedora.linuxman.biz
 * rpmfusion-free: ftp.upjs.sk
 * rpmfusion-free-updates: ftp.upjs.sk
 * rpmfusion-nonfree: ftp.upjs.sk
 * rpmfusion-nonfree-updates: ftp.upjs.sk
0 packages excluded due to repository protections
Undoing transaction 7, from Sun Dec 13 13:05:43 2009
    Erase        kmod-nvidia-190.42-1.fc12.8.x86_64
    Erase        kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
Resolving Dependencies
--> Running transaction check
---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be updated
---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be updated
--> Finished Dependency Resolution
 
Dependencies Resolved
 
====================================================================================================================================================================================
 Package                                                   Arch                        Version                                 Repository                                      Size
====================================================================================================================================================================================
Installing:
 kmod-nvidia                                               x86_64                      190.42-1.fc12.8                         rpmfusion-nonfree-updates                       29 k
 kmod-nvidia-2.6.31.6-166.fc12.x86_64                      x86_64                      190.42-1.fc12.8                         rpmfusion-nonfree-updates                      2.2 M
 
Transaction Summary
====================================================================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)
 
Total download size: 2.3 M
[root@Pegasus ~]# yum history redo 2
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * fedora: fedora.linuxman.biz
 * rpmfusion-free: ftp.upjs.sk
 * rpmfusion-free-updates: ftp.upjs.sk
 * rpmfusion-nonfree: ftp.upjs.sk
 * rpmfusion-nonfree-updates: ftp.upjs.sk
0 packages excluded due to repository protections
Repeating transaction 2, from Sat Dec 12 11:29:54 2009
    Install      kmod-nvidia-190.42-1.fc12.8.x86_64
    Dep-Install  kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
Resolving Dependencies
--> Running transaction check
---> Package kmod-nvidia.x86_64 0:190.42-1.fc12.8 set to be updated
--> Processing Dependency: kmod-nvidia-2.6.31.6-166.fc12.x86_64 >= 190.42-1.fc12.8 for package: kmod-nvidia-190.42-1.fc12.8.x86_64
--> Running transaction check
---> Package kmod-nvidia-2.6.31.6-166.fc12.x86_64.x86_64 0:190.42-1.fc12.8 set to be updated
--> Finished Dependency Resolution
 
Dependencies Resolved
 
====================================================================================================================================================================================
 Package                                                   Arch                        Version                                 Repository                                      Size
====================================================================================================================================================================================
Installing:
 kmod-nvidia                                               x86_64                      190.42-1.fc12.8                         rpmfusion-nonfree-updates                       29 k
Installing for dependencies:
 kmod-nvidia-2.6.31.6-166.fc12.x86_64                      x86_64                      190.42-1.fc12.8                         rpmfusion-nonfree-updates                      2.2 M
 
Transaction Summary
====================================================================================================================================================================================
Install       2 Package(s)
Upgrade       0 Package(s)
 
Total download size: 2.3 M

Ако искаме повече информация за даден пакет, то може да комбинираме някои от опциите. Да речем yum history summary kmod-nvidia, yum history list kmod-nvidia или yum history info kmod-nvidia ни дават следната информация:

[root@Pegasus ~]# yum history summary kmod-nvidia
Loaded plugins: allowdowngrade, fastestmirror, presto, protectbase, refresh-packagekit, security
Login user                 | Time                | Action(s)        | Altered
-------------------------------------------------------------------------------
 Nick                    | Last day            | E, I             |        4
 Nick                    | Last week           | Install          |        2
[root@Pegasus ~]# yum history list kmod-nvidia
Loaded plugins: allowdowngrade, dellsysidplugin2, fastestmirror, presto, protectbase, refresh-packagekit, security
ID     | Login user             | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     8 |  Nick                | 2009-12-13 13:11 | Install        |    2
     7 |  Nick                | 2009-12-13 13:05 | Erase         |    2
     2 |  Nick                | 2009-12-12 11:29 | Install        |    2
[root@Pegasus ~]# yum history info kmod-nvidia
Loaded plugins: allowdowngrade, dellsysidplugin2, fastestmirror, presto, protectbase, refresh-packagekit, security
Transaction ID : 8
Begin time     : Sun Dec 13 13:11:52 2009
Begin rpmdb    : 1983:4824469c95865c6b3a6548a690e9fd10f7b8d43a
End time       :            13:11:57 2009 (5 seconds)
End rpmdb      : 1985:dc98b76dd546e9edd76e8b5b8520f5f7a8c7d7c7
User           :  Nick
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.7.1-6.fc12.x86_64
    Installed    yum-3.2.25-1.fc12.noarch
    Installed    yum-plugin-fastestmirror-1.1.24-2.fc12.noarch
Packages Altered:
    Install      kmod-nvidia-190.42-1.fc12.8.x86_64
    Dep-Install  kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
-------------------------------------------------------------------------------
Transaction ID : 7
Begin time     : Sun Dec 13 13:05:43 2009
Begin rpmdb    : 1985:dc98b76dd546e9edd76e8b5b8520f5f7a8c7d7c7
End time       :            13:05:54 2009 (11 seconds)
End rpmdb      : 1983:4824469c95865c6b3a6548a690e9fd10f7b8d43a
User           :  Nick
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.7.1-6.fc12.x86_64
    Installed    yum-3.2.25-1.fc12.noarch
    Installed    yum-plugin-fastestmirror-1.1.24-2.fc12.noarch
Packages Altered:
    Erase        kmod-nvidia-190.42-1.fc12.8.x86_64
    Erase        kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64
-------------------------------------------------------------------------------
Transaction ID : 2
Begin time     : Sat Dec 12 11:29:54 2009
Begin rpmdb    : 1968:ab76e09445bc9332ee617c5c7bf34a9859e04ade
End time       :            11:30:01 2009 (7 seconds)
End rpmdb      : 1970:c33229c535f6633f7b1ee91e1461fb56c9784e64
User           :  Nick
Return-Code    : Success
Transaction performed with:
    Installed    rpm-4.7.1-6.fc12.x86_64
    Installed    yum-3.2.25-1.fc12.noarch
    Installed    yum-plugin-fastestmirror-1.1.24-2.fc12.noarch
Packages Altered:
    Install      kmod-nvidia-190.42-1.fc12.8.x86_64
    Dep-Install  kmod-nvidia-2.6.31.6-166.fc12.x86_64-190.42-1.fc12.8.x86_64

Полезно, лесно и удобно!

Osprey 230 Linux Driver Sound Patch

четвъртък, септември 24th, 2009

Реших да драсна няколко реда относно този проблем, защото информацията в нета е доста оскъдна. Накратко, capture картите на Osprey от серия 230 (и не само те), но в моя случай ставаше дума за такава имат проблем със звука. Те варират от пълната му липса до едно дразнещо бучене, макар и да се чува някакво подобие на звук. По-често срещаният проблем е вторият и причината всъщност е във високият gain. Из мейлинг листите има доста въпроси относно този проблем, но малка част от тях водят до някакво решение.

До ядро 2.6.9 Viewcast са имали собствени драйвери за Linux за своите карти, но в последствие тяхната разработка е била прехвърлена на общността и в частност на хората зад v4l/dvb. Драйверите за v4l поначало са част от linux ядрото. В ядрото идващо с CentOS 5.2, а именно 2.6.18 нужните драйвери за разпознаване и работа на Osprey картите са налице. Това са bttv за video и snd_bt87x за звука. И докато видеото може да се каже че е с перфектно качество, то както вече стана дума не можем да кажем това и за звука. При малко по-усилено търсене могат да се намерят едни стари пачове от 2006-та година, които са решавали проблема посредством btaudio, но на мен те не ми свършиха работа. Patch-ът, който всъщност работи, може да бъде намерен ето тук . (Понеже той не може да бъде видян без регистрация за v4l mail листата, то ще направя и local mirror).

И така, ако в dmesg, или /var/log/messages виждаме нещо подобно:

bttv: driver version 0.9.18 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
bttv0: Bt878 (rev 17) at 0000:0b:04.0, irq: 19, latency: 132, mmio: 0xd8000000
bttv0: detected: Osprey-200 [card=88], PCI subsystem ID is 0070:ff01
bttv0: using: Osprey 200/250 [card=88,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
bttv0: osprey eeprom: card=89 'Osprey 210/220/230' serial=5436547
bttv0: osprey eeprom: Changing card type from 88 to 89
bttv0: tuner absent
bttv0: registered device video0
bttv0: registered device vbi0

то картата ни е разпозната, модулът е зареден и можем да я ползваме по предназначение (засега без звук).

Ето и основните стъпки, по които да се ръководи човек сблъскал се с подобен род проблем, като те като цяло са малко redhat specific, но не би трябвало да бъде проблем да се ползват и за други дистрибуции.

  • Сваляваме osprey-snd-patch.
cd /usr/src/
wget http://just4nick.net/blog/wp-content/uploads/2009/09/osprey-snd.patch
  • Сваляме сорс кода на v4l-dvb и го разархивираме.
wget http://linuxtv.org/hg/~tap/bttv/archive/tip.tar.gz
tar -zxvf bttv-35ddb77b68f8.tar.gz
mv bttv-35ddb77b68f8 v4l-dvb
  • Прилагаме patch-a.
patch --dry-run -p1 -d v4l-dvb < osprey-snd.patch

Както се вижда и от самия код ползваме опцията на patch за суха тренировка –dry-run. Така се предпазваме от грешки. Ако всичко е наред, би трябвало да видим нещо от този род:

patching file linux/drivers/media/video/bt8xx/bttv-if.c
patching file linux/drivers/media/video/bt8xx/bttv.h
Hunk #1 succeeded at 302 (offset 1 line).
patching file linux/sound/pci/bt87x.c
Hunk #7 succeeded at 437 (offset 2 lines).
Hunk #9 succeeded at 778 (offset 2 lines).
Hunk #11 succeeded at 984 (offset 2 lines).
Hunk #12 succeeded at 1084 (offset 2 lines).
Hunk #13 succeeded at 1109 (offset 2 lines).

След което можем да пристъпим към същинското прилагане на patch-а с командата:

patch -p1 -d v4l-dvb < osprey-snd.patch
  • Инсталираме kernel-devel, kernel-headers, redhat-rpm-config, rpm-build.
yum -y install kernel-devel kernel-headers redhat-rpm-config rpm-build
  • Сваляме и инсталираме src rpm-a на ядрото.
cd /usr/local/src/
wget ftp://mirror.switch.ch/pool/3/mirror/centos/5.3/updates/SRPMS/kernel-2.6.18-128.4.1.el5.src.rpm
rpm -ivh kernel-2.6.18-128.4.1.el5.src.rpm
  • Билдваме модифицирания код на ядрото.
cd /usr/src/redhat/SPECS
rpmbuild -bp --target=$(arch) kernel-2.6.spec
  • Коригираме Makefile.
cd /usr/src/redhat/BUILD/kernel-2.6.18/linux-2.6.18.x86_64/
vim Makefile

където променяме

EXTRAVERSION = -prep

EXTRAVERSION = -128.4.1.el5
  • Компилираме и инсталираме driver-ите.
cp configs/kernel-2.6.18-x86_64.config .config
make modules_prepare
cd /usr/src/v4l-dvb
make all
make install
make sound-install

Ако всичко мине успешно, то при изпълняването на

ls -la /lib/modules/2.6.18-128.4.1.el5/kernel/sound/pci/snd-bt87x.ko

би трябвало да видим, че модула е налице и е с текуща дата и час.

  • Зареждаме модула.
rmmod snd_bt87x
modprobe snd_bt87x

След което би трябвало да е възможно да коригираме sound capture посресдством alsamixer и да имаме нормално работещ звук.

Допълнителна информация:

http://linux.lcpe.uni-sofia.bg/manuals/openintegra/xfs/RHEL_xfs_RPM.html
http://wiki.centos.org/HowTos/BuildingKernelModules
http://www.google.bg/#hl=bg&q=linux+audio+problem+Osprey+230&meta=&fp=e366587b524c8386

that was yesterday…

сряда, юни 24th, 2009

10.00 a.m. – няма ток в collocation центъра

16.00 p.m. – dmesg | grep sda:

ReiserFS: sda1: warning: vs-13060: reiserfs_update_sd: stat data of object [91527 91528 0x0 SD] (nlink == 1) not found (pos 1) – (очертава се денят да е дълъг)

17.00 p.m.:

umount /dev/sda1
reiserfsck –check /dev/sda1

Checking internal tree..finished
Comparing bitmaps..finished
Fatal corruptions were found, Semantic pass skipped
1 found corruptions
###########

17.30 p.m.:

reiserfsck –scan-whole-partition –rebuild-tree /dev/sda1 – и стискам палци

17.30 – 23:00 p.m.

три бири в приятна компания :)

едно уиски докато чакам да минем от 80% на 100%

23;10 p.m.

###########
reiserfsck finished at Tue Jun 23 23:09:32 2009
###########

23:15 p.m.:

yum upgrade

00:30 p.m. – welcome to the machine :)


linux convert jpg to pdf

понеделник, юни 15th, 2009

Преди няколко дни ми се наложи да редактирам pdf файл направен от някаква скенер програмка на Xerox, която обединява всички сканирани страници в един общ файл. Проблемът е, че както и да му подадеш листа, във файла в последствие някои от страниците са обърнати на 180°. Rotate от самия pdf reader не върши работа, защото завърта всичко глобално. Така че се налага да разбием файла така да се каже на съставните му части и да обърнем страниците, които имат нужда от това. Варианти да се направи това има няколко. Може да стане и графично с The GIMP,  и в command line с convert, който е част от ImageMagick.

Графично това става по следния начин:

  • отваряме желания pdf файл с GIMP
  • в менюто import from pdf избираме Select All (или Select Range ако искаме да обърнем само първите три страници да речем)
  • Open Pages As Images

и на края естествено Import така GIMP отваря всяка (или всяка посочена) страница като отделна картинка, която можем да редактираме и запишем в желания формат.

gimp-pdf-import

Втория и според мен много по-лесен начин е този с convert, като просто трябва да изпълним следното:

convert input.pdf image_%03d.tiff

или

convert input.pdf image_%03d.jpg

ако предпочитаме jpg изходни файлове, като „%03d“ означава, че в името ще имаме image_ последвано от 3 цифри, предхождани от нули от рода 001, 002 или в крайна сметка image_00x.jpg. И ако картинката, която има нужда от завъртане е 003, то стигаме до:

convert -rotate 180 image_003.jpg output.jpg

На края остава да съединим картинките и да получим първоначалния файл, но вече без страници, които са с с главата надолу :), като това става по следния начин:

convert *jpg modified.pdf

като така получаваме pdf файл, в който всяка входяща картинка е на отделна страница.

Това естествено съвсем не е всичко, което можем да направим с convert. Повече може да се види тук или в man-а.

Забележка:
Последната стъпка поне на този етап не работи и няма да работи във Fedora 11. Повече тук.

Stop ACTA