Журнал LinuxFormat - перейти на главную

LXF155:Answers

Материал из Linuxformat
Перейти к: навигация, поиск


Есть вопрос по открытому ПО? Пишите нам по адресу answers@linuxformat.ru

Содержание

ОТВЕТЫ

Wii это мо­жет

B Я про­чел о драй­ве­рах Wiimote, вклю­чен­ных в яд­ро Linux. Не мог­ли бы вы под­роб­но объ­яснить, как мне этим восполь­зо­вать­ся (ес­ли мож­но, язы­ком для на­чи­наю­щих)? У ме­ня есть ком­пь­ю­тер с Mint 12, под­клю­чен­ный к те­ле­ви­зо­ру в гости­ной, и я был бы рад сно­ва восполь­зо­вать­ся сво­ей ста­рой Wiimote в ка­че­­ст­ве мы­ши/ука­за­те­ля, ес­ли это воз­мож­но. Марк Скиннер [Mark Skinner]

О К со­жа­лению, ни один из ва­ри­ан­тов ис­поль­зо­вания Wiimote в Linux по­ка не слиш­ком под­хо­дит для на­чи­наю­щих. Драй­ве­ры Wiimote вклю­че­ны в яд­ро толь­ко в се­рии 3.1 (в Linux Mint – яд­ро вер­сии 3.0), и по­ка на­хо­дят­ся на ранних ста­ди­ях раз­ра­бот­ки, по­это­му пол­но­цен­ных поль­зо­ва­тель­ских ути­лит еще нет. Когда это из­менит­ся, драй­вер яд­ра бу­дет бо­лее удо­бен. Аль­тер­на­тив­ный ва­ри­ант, ко­то­рым я успеш­но поль­зу­юсь несколь­ко лет – cwiid (http://abstrakraft.org/cwiid). Од­на­ко для него необ­хо­ди­мо яд­ро с под­держ­кой uinput – а в яд­ре Mint ее нет. В лю­бом слу­чае Вам при­дет­ся ком­пи­ли­ро­вать соб­ст­вен­ное яд­ро, хо­тя для cwiid нуж­но лишь уста­но­вить стан­дарт­ные ис­ход­ные фай­лы Mint Linux, вклю­чить оп­цию UINPUT и вы­полнить ко­ман­ду

make all modules_install install

в ка­та­ло­ге /usr/src/linux для ком­пи­ля­ции и уста­нов­ки яд­ра. Ли­бо мож­но по­про­бо­вать дру­гой ди­ст­ри­бу­тив и по­смот­реть, под­дер­жи­ва­ет ли его яд­ро uinput. Са­мый про­стой спо­соб это оп­ре­де­лить – за­гру­зить­ся с Live CD ди­ст­ри­бу­ти­ва, от­крыть тер­ми­нал и вы­полнить ко­ман­ду

sudo modinfo uinput

Ес­ли Вы ви­ди­те ин­фор­ма­цию о мо­ду­ле, Вам по­вез­ло. На ком­пь­ю­те­ре дол­жен быть так­же Blue­tooth – ли­бо встро­ен­ный, ли­бо один из рас­про­странен­ных и де­ше­вых USB-уст­ройств Bluetooth. Ин­тер­фейс у них стан­дарт­ный, и Вам по­дой­дет прак­ти­че­­ски лю­бой.

В со­ста­ве cwiid – три про­грам­мы, за­пускае­мые под обыч­ным поль­зо­ва­те­лем (не че­рез sudo или от имени root). На­жми­те и удер­жи­вай­те кноп­ки 1 и 2 на Wiimote и за­пусти­те lswm. Ко­ман­да вы­ве­дет ад­ре­са всех об­на­ру­жен­ных ею Wiimote, и Вы убе­ди­тесь, что все ра­бо­та­ет. В гра­фи­че­­ской обо­лоч­ке wmgui ото­бра­жа­ют­ся на­жа­тия кно­пок и вход­ные зна­чения дат­чи­ков от Wiimote. Ос­нов­ная про­грам­ма – wminput, она принима­ет на­жа­тия кла­виш кла­виа­ту­ры и со­бы­тия мы­ши. Ее на­строй­ки на­хо­дят­ся в фай­ле ~/.CWiid/wminput.conf. В cwiid есть при­ме­ры го­то­вых на­стро­ек – и го­то­вые на­строй­ки кно­пок; это хо­ро­шая от­прав­ная точ­ка. Как и для дру­гих двух про­грамм, при за­пуске wminput нуж­но удер­жи­вать кноп­ки 1 и 2 на Wiimote, что­бы ее мож­но бы­ло об­на­ру­жить. Про­сто за­пусти­те ее в X-тер­ми­на­ле, до­ж­ди­тесь от­ве­та Ready [Го­то­во] и на­жми­те несколь­ко кно­пок на уст­рой­ст­ве.

Что­бы поль­зо­вать­ся панелью дат­чи­ков, про­сто рас­по­ло­жи­те ее в под­хо­дя­щем мес­те и под­клю­чи­те к ис­точнику пи­тания. Не­смот­ря на на­звание, дат­чи­ков в этой панели нет – а есть лишь несколь­ко ин­фра­крас­ных све­то­дио­дов. Все «ум­ные» опе­ра­ции про­из­во­дят­ся ка­ме­рой в Wiimote. Мож­но поль­зо­вать­ся да­же до­полнитель­ны­ми ак­сес­суа­ра­ми, под­клю­чае­мы­ми к Wiimote, хо­тя управ­ление бизнес-пре­зен­та­ци­ей с по­мо­щью ги­та­ры от Guitar Hero мо­жет и не впе­чат­лить Ва­ше­го на­чальника.

Мо­дуль uinput мо­жет сде­лать уст­рой­ст­во доступ­ным толь­ко поль­зо­ва­те­лю root; что­бы это ис­пра­вить, по­мес­ти­те од­ну из следующих строк в /etc/udev/rules.d/10-cwiid.rules:

KERNEL==”uinput”, MODE=”0666”

KERNEL==”uinput”, MODE=”0660”, GROUP=”adm”

Пер­вая де­ла­ет уст­рой­ст­во доступ­ным всем поль­зо­ва­те­лям, вто­рая – всем поль­зо­ва­те­лям в груп­пе adm (это ад­минист­ра­тив­ная груп­па, к ко­то­рой при­над­ле­жит пер­вый поль­зо­ва­тель).

Kino и raw1394

(thumbnail)
Kino — удобный видеоредактор, но без обновлений согласно изменениям ядра он не сработается со свежими дистрибутивами.

B Я поль­зу­юсь Ubuntu 10.04 LTS и не мо­гу ре­дак­ти­ро­вать ви­део­за­пи­си со сво­ей ви­део­ка­ме­ры JVC 357. Я по­лу­чаю со­об­щение «raw1394 module not installed, or failure to read/write [мо­дуль raw1934 не уста­нов­лен, или ошиб­ка чтения/за­пи­си]». Фай­ла /etc/raw1394, по­хо­же, не су­ще­ст­ву­ет. Я бы­ло ре­шил, что при­бли­зил­ся к ре­шению про­бле­мы, восполь­зо­вав­шись со­ве­та­ми, най­ден­ны­ми в Се­ти. Я из­менил пра­ва досту­па к фай­лу /dev/raw1394

sudo chmod a+rw /dev/raw1394

что­бы у всех поль­зо­ва­те­лей был к не­му дос­туп, и за­тем про­ве­рил, что файл су­ще­ст­ву­ет, ко­ман­дой

ls -l /dev/raw1394

ко­то­рая вер­ну­ла сле­дую­щий ре­зуль­тат:

crw-rw-rw- 1 root disk 171, 0 2008-04-12 19:56 /dev/raw1394

По­сле все­го это­го я по­лу­чил со­об­щение «Camera not connected [Ка­ме­ра не под­клю­че­на]», и это от­час­ти был шаг впе­ред, но по­том мне зая­ви­ли, что еще нуж­но из­менить файл чер­но­го спи­ска, до­ба­вив ре­шет­ку в стро­ку

blacklist firewire-och1

Ни­че­го не из­менилось, и я ре­шил за­кон­чить на этом. На­зав­тра я по­про­бо­вал сно­ва, но даль­ше не ушел. Не­у­же­ли ре­дак­ти­ро­вание ви­део долж­но вы­зы­вать та­кие труд­но­сти?

AMG

О В про­грам­ме Kino, ко­то­рая боль­ше не раз­ра­ба­ты­ва­ет­ся, ис­поль­зо­ван ста­рый стек драй­ве­ров Linux 1394, но в кон­це 2010 го­да его за­менили на но­вый стек FireWire. Вам нуж­но поль­зо­вать­ся ста­ры­ми мо­ду­ля­ми 1394, ко­то­рые по умол­чанию до­бав­ле­ны в чер­ный спи­сок. От­крой­те файл /etc/modprobe.d/blacklist-firewire.conf и рас­ком­мен­ти­руй­те (уда­лив на­чаль­ную #) две стро­ки FireWire, за­тем за­ком­мен­ти­руй­те пять строк, ко­то­рые до­бав­ля­ют в чер­ный спи­сок мо­ду­ли ohci1394, sbp2, dv1394, raw1394 и video1394. По­том об­но­ви­те initramfs ко­ман­дой

sudo update-initramfs -u

По­сле пе­ре­за­груз­ки долж­ны за­гру­зить­ся мо­ду­ли IEE1394 и поя­вить­ся уст­рой­ст­во /dev/raw1394. Ес­ли оно не поя­ви­лось, ско­ман­дуй­те

sudo modprobe -v raw1394

Вто­рая по­ло­ви­на за­да­чи – пре­доста­вить ин­тер­фейс в доступ обыч­ным поль­зо­ва­те­лям. Каж­дый раз при ре­дак­ти­ро­вании ви­део за­пускать sudo chmod – не ва­ри­ант, коль ско­ро udev мо­жет де­лать это ав­то­ма­ти­че­­ски. Соз­дай­те файл /etc/udev/rules.d/10-firewire.rules со сле­дую­щей стро­кой

KERNEL==”raw1394”, MODE=”0660”, GROUP=”adm”

Имя фай­ла не име­ет зна­чения, но за­кан­чи­вать­ся оно долж­но на .rules. Эта стро­ка ве­лит udev соз­да­вать лю­бое уст­рой­ст­во raw1394 с пра­ва­ми за­пи­си/чтения для груп­пы и при­над­ле­жа­щим груп­пе adm. Вме­сто adm мож­но взять лю­бую груп­пу, чле­ном ко­то­рой Вы яв­ляе­тесь. Пра­ви­ла при­ме­ня­ют­ся толь­ко при соз­дании уст­рой­ст­ва, по­это­му пе­ре­за­гру­зи­те сис­те­му или уда­ли­те уст­рой­ст­во и соз­дай­те его сно­ва коман­да­ми

sudo rmmod raw1394

sudo modprobe 1394

Впро­чем, нуж­но и пре­ду­пре­дить вас: ста­рый ин­тер­фейс IEEE1394 уда­лен из яд­ра, по­то­му-то мо­ду­ли до­бав­ле­ны в чер­ный спи­сок, что­бы дать до­ро­гу firewire-ohci. В Ubuntu 11.10 их нет со­всем. Так как Kino боль­ше не раз­ра­ба­ты­ва­ет­ся, с ка­ж­дым об­нов­лением сис­те­мы поль­зо­вать­ся им бу­дет все сложнее. Луч­шее ре­шение на дол­го­сроч­ную пер­спек­ти­ву – най­ти па­кет для ре­дак­ти­ро­вания ви­део, ко­то­рый под­дер­жи­ва­ет­ся.

Пе­ре­име­но­вание па­ке­том

B Во­оду­шев­лен­ный LXF151, я на­чал «по­ко­рять команд­ную стро­ку». Ну, мо­жет, и не по­ко­рять, но хо­тя бы по­ста­рать­ся рас­ши­рить го­ри­зон­ты. Я по­ду­мал, что для на­ча­ла бы­ло бы непло­хо сде­лать что-нибудь прак­тич­ное ко­ман­дой rename и пе­ре­име­но­вать фай­лы фо­то­гра­фий с ужас­ны­ми име­на­ми. Мне по­мог­ла справ­ка на http://tips.webdesign10.com/how-to-bulk-rename-files-in-linux-in-the-terminal, и я усво­ил са­мое про­стое: на­при­мер, ко­ман­да

rename -n ‘s/(\d{8})\.JPG$/BeachPics_$1\.jpg/’ *.JPG

пе­ре­име­но­вы­ва­ет 00001111.JPG в BeachPics­_00001111.jpg.

Это до­воль­но близ­ко к то­му, что мне нуж­но, но не до кон­ца. Мой фо­то­ап­па­рат да­ет фай­лам име­на по ти­пу IMG_000072.JPG. Я хо­чу взять се­рию сним­ков с IMG_000072.JPG по IMG_000092.JPG и пе­ре­име­но­вать их, ска­жем, в «Lisbon, June 2011 — Pic 1» — «Lisbon, June 2011 — Pic 20».

Мож­но ли это сде­лать од­ной ко­ман­дой rename? Ес­ли да, не мог­ли бы вы раз­бить ее на час­ти, что­бы я по­нял, как она ра­бо­та­ет?

Fiorghael, c фо­ру­мов

О Ва­ше же­лание вы­полнимо (в команд­ной стро­ке воз­мож­но все), но од­ной ко­ман­дой не обой­тись. Все ко­ман­ды пе­ре­име­но­вания фай­лов ра­бо­та­ют по од­но­му и то­му же прин­ци­пу, за­ме­няя один на­бор сим­во­лов дру­гим, но Вы хо­ти­те до­ба­вить в эту схе­му еще один эле­мент – но­вую ну­ме­ра­цию фай­лов.

Воз­мож­но и это, но луч­ше все­го при­менить для это­го ко­рот­кий скрипт.

  1. !/bin/sh

count=0

for file in *.JPG; do

count=$(( count + 1 ))

mv -n “${file}” “new name ${count}.jpg”

done

Этот скрипт про­бе­га­ет по всем фай­лам и на­зы­ва­ет их но­вым именем и счет­чи­ком с уве­ли­чи­ваю­щим­ся зна­чением. Па­ра­метр -n ко­ман­ды mv го­во­рит ко­ман­де, что пе­ре­за­пи­сы­вать су­ще­ст­вую­щий файл не нуж­но, ина­че про­стая опе­чат­ка при­ве­дет к то­му, что все фай­лы бу­дут пе­ре­име­но­ва­ны одним и тем же именем, и все, кро­ме по­следнего, уда­лят­ся. Что­бы ви­деть про­ис­хо­дящее, мож­но до­ба­вить па­ра­метр -v (verbose – под­роб­ный вы­вод).

Скрипт не очень ги­бок: он не по­зво­ля­ет вы­брать, ка­кие фай­лы нуж­но пе­ре­име­но­вать, и но­вое имя фай­лов в него «за­ши­то». Вот более удобная аль­тер­на­ти­ва:

  1. !/bin/sh

count=0

newname=”$1”

shift

for file in $*; do

count=$(( count + 1 ))

echo mv -n “${file}” “${newname}${count}.jpg”

done

Этот скрипт принима­ет несколь­ко ар­гу­мен­тов в команд­ной стро­ке. Пер­вый ($1) – осно­ва но­во­го имени. Он за­пи­сы­ва­ет­ся в пе­ре­мен­ную, за­тем ко­ман­да shift из­бав­ля­ет­ся от него, не тро­гая остав­шую­ся часть спи­ска. Это фай­лы, ко­то­рые нуж­но пе­ре­име­но­вать – они за­тем об­ра­ба­ты­ва­ют­ся в цик­ле и пе­ре­име­но­вы­ва­ют­ся так же, как в пре­ды­ду­щем скрип­те. Со­храните скрипт и сде­лай­те его ис­пол­няе­мым ко­ман­дой

chmod +x myrename.sh

Ес­ли в но­вом имени, как в Ва­шем при­ме­ре, долж­ны быть про­бе­лы, за­клю­чи­те этот ар­гу­мент в ка­выч­ки. Стро­ка за­пуска скрип­та бу­дет вы­гля­деть при­мер­но так:

./myrename.sh “Lisbon, June 2011 - Pic “ *.JPG

Ос­во­ив это, Вы наверняка за­хо­ти­те по­зна­ко­мить­ся с дру­ги­ми прие­ма­ми, на­при­мер, с функ­ци­ей printf для вы­во­да фор­ма­ти­ро­ван­ных чи­сел с ве­ду­щи­ми ну­ля­ми, и та­ким об­ра­зом разместить свои фай­лы по по­ря­дку. Ли­бо мож­но про­сто со­брать все фо­то­гра­фии из Лис­са­бо­на в от­дель­ный ка­та­лог.

Стран­ные сим­во­лы

B На мо­ем ком­пь­ю­те­ре сто­ит Linux 10.04 с поч­то­вым кли­ен­том Evolution. Два ви­да пи­сем, ко­то­рые я ре­гу­ляр­но по­лу­чаю, со­дер­жат стран­ные сим­во­лы. В пер­вом — поч­то­вой рас­сыл­ке, ко­то­рая при­хо­дит, ви­ди­мо, от сер­ви­са поч­то­вых рас­сы­лок, вме­сто ка­вы­чек встав­ля­ет­ся «0093», вме­сто апо­ст­ро­фов — «0092», а вме­сто за­пя­той — «0096». Циф­ры ма­лень­кие и за­клю­че­ны в квад­рат или пря­мо­угольник, по­это­му они уме­ща­ют­ся в про­стран­ст­ве, занимае­мом од­ной бу­к­вой.

Я спро­сил об этом ав­то­ра рас­сыл­ки, и он ска­зал, что так ре­шил про­бле­му, возник­шую по­сле пе­ре­хо­да на но­вую вер­сию Windows. Во вто­ром, ко­то­рое при­хо­дит из од­ной ком­пании, ка­ж­дое сло­во или груп­па чи­сел на­чи­на­ет­ся с но­вой стро­ки — чи­тать это очень неудоб­но.

Пи­тер Рэтк­лифф [Peter Ratcliffe]

О Эти че­ты­рех­знач­ные чис­ла в квад­ра­ти­ках – ко­ды сим­во­лов в Unicode; на­при­мер, 93 – код от­кры­ваю­щей двой­ной ка­выч­ки.

Ес­ли в про­грам­ме ото­бра­жа­ет­ся код в та­ком квад­ра­ти­ке, это зна­чит, что про­грам­ма не мо­жет вы­вес­ти необ­хо­ди­мый сим­вол – на­при­мер, по­то­му, что его нет в ис­поль­зуе­мом Ва­ми шриф­те, хо­тя с та­ким рас­про­странен­ным сим­во­лом это ма­ло­ве­ро­ят­но. Вто­рая воз­мож­ная при­чи­на – про­грам­ма не смог­ла оп­ре­де­лить тип при­ме­няе­мой ко­ди­ров­ки. Про­грам­ма-от­пра­ви­тель элек­трон­ной поч­ты долж­на ука­зы­вать ко­ди­ров­ку в за­го­лов­ке элек­трон­но­го пись­ма, что­бы Ва­ша про­грам­ма зна­ла, как ото­бра­зить эти сим­во­лы. Так как это про­ис­хо­дит толь­ко с несколь­ки­ми от­пра­ви­те­ля­ми, есть осно­вания пред­по­ло­жить, что это их ошиб­ка, а не Ва­ша, и что они некор­рект­но ука­зы­ва­ют ко­ди­ров­ку (но что­бы ска­зать на­вер­ня­ка, нуж­но взгля­нуть на пол­ное пись­мо с за­го­лов­ка­ми).

Хо­ро­шая но­вость – Evolution мож­но за­ста­вить при­ме­нять оп­ре­де­лен­ную ко­ди­ров­ку для от­дель­но­го пись­ма; для это­го зай­ди­те в ме­ню View > Character Encoding [Вид > Ко­ди­ров­ка] и вы­бе­ри­те нуж­ную. Воз­мож­но, для на­хо­ж­дения вер­ной ко­ди­ров­ки Вам при­дет­ся пе­ре­брать несколь­ко; но най­дя ее, Вы бу­де­те знать, ка­кую за­дать при ка­ж­дом по­лу­чении пись­ма от дан­но­го от­пра­ви­те­ля.

И это по­ро­ж­да­ет плохую но­вость: за­дать ко­ди­ров­ку по умол­чанию для кон­крет­но­го от­пра­ви­те­ля нель­зя – ка­ж­дый раз при по­лу­чении пись­ма от него Вам при­дет­ся вы­би­рать ее вруч­ную.

Будь у Вас локаль­ный поч­то­вый сер­вер, мож­но бы­ло бы при по­лу­чении пись­ма всегда до­бав­лять че­рез procmail со­от­вет­ст­вую­щий за­го­ло­вок, за­ви­ся­щий от от­пра­ви­те­ля, но в на­столь­ной сис­те­ме это непрак­тич­ный под­ход.

Вто­рой во­прос, ко­то­рый Вы за­дае­те, сви­де­тель­ст­ву­ет о стран­ной про­бле­ме ко­ди­ров­ки, но не имея ни од­но­го из Ва­ших пи­сем и не зная, ка­кой кли­ент был ис­поль­зо­ван для его от­прав­ки, оче­вид­ных ре­шений не пред­ло­жишь.

autodonothing

B До недавних пор в мо­ей сис­те­ме Lucid встав­ляе­мые в при­вод CD и DVD-дис­ки за­пуска­лись ав­то­ма­ти­че­­ски. Од­на­ко, несмот­ря на мои уси­лия, по­сле мон­ти­ро­вания дис­ке­ты с по­мо­щью менед­же­ра мон­ти­ро­вания и менед­же­ра хранения я об­на­ру­жил, что боль­ше не мо­гу чи­тать дис­ки с дан­ны­ми или ком­мер­че­­ские дис­ки CD-ROM или за­пускать их ина­че, как от­кры­вая ок­но gksudo nautilus в тер­ми­на­ле или за­пуская там же ко­ман­ду sudo mount -t iso9660 /dev/scd0 /media/cdrom.
(thumbnail)
Evolution, как и любой почтовый клиент, делает лишь то, что ему скажут, и не умеет читать мысли отправителя.

Мои ау­дио­дис­ки ав­то­ма­ти­че­­ски за­пуска­ют­ся, а чис­тые дис­ки пре­крас­но мон­ти­ру­ют­ся.

Вот мой файл etc/fstab:

UUID=406dd4-b7b5-4dca-9c91-705daf05eb18 / ext4 defaults 0 1

UUID=18be48-415f-4f78-ba81-af05400052ca swap swap sw 0 0

/dev/fd0 /media/floppy0 vfat noauto 0 0

/dev/sr0 /cdrom udf,iso9660 noauto 0 0

Не под­ска­же­те ли вы, как из­менить сис­тем­ные на­строй­ки, что­бы дис­ки по-прежнему за­пуска­лись ав­то­ма­ти­че­­ски?

Дэ­вид Мид [David Mead]

О Для на­ча­ла уда­ли­те стро­ки для дис­ко­во­да и при­во­да CD-ROM из /etc/fstab или по крайней ме­ре за­ком­мен­ти­руй­те их, до­ба­вив # в на­ча­ле ка­ж­дой стро­ки. Ав­то­мон­ти­ров­щи­ки обыч­но мон­ти­ру­ют съем­ные дис­ки в ка­та­лог /media с именем, от­ра­жаю­щим ли­бо имя уст­рой­ст­ва, ли­бо имя то­ма но­си­те­ля. Запись в /etc/fstab мо­жет вли­ять на них, из­ме­няя и точ­ку мон­ти­ро­вания, и па­ра­мет­ры мон­ти­ро­вания, а в Ва­шем fstab мон­ти­ро­вание для обыч­но­го поль­зо­ва­те­ля за­пре­ще­но.

Так как Вы мо­же­те мон­ти­ро­вать диск из тер­ми­на­ла от имени root, ап­па­рат­ные про­бле­мы ис­клю­ча­ют­ся. Ес­ли уда­ление этих строк из /etc/fstab не при­во­дит ни к ка­ко­му ре­зуль­та­ту, да­лее нуж­но по­пы­тать­ся по­нять, что про­ис­хо­дит. По­мо­жет в этом файл жур­на­ла сис­те­мы. Вы­полните та­кую ко­ман­ду – в за­ви­си­мо­сти от Ва­ших на­стро­ек мо­жет по­тре­бо­вать­ся ис­поль­зо­вание sudo:

tail -f /var/log/syslog

Она в ре­аль­ном вре­мени по­ка­зы­ва­ет, что за­пи­сы­ва­ет­ся в сис­тем­ный лог-файл (в неко­то­рых ди­ст­ри­бу­ти­вах это /var/log/messages). За­тем вставь­те CD или DVD-диск и на­блю­дай­те за вы­во­дом. Вы уви­ди­те, рас­по­знан ли диск, пы­та­ет­ся ли ав­то­мон­ти­ров­щик его смон­ти­ро­вать и что идет не так, ес­ли пы­та­ет­ся. Ес­ли по­сле мон­ти­ро­вания дис­ка ав­то­за­пуска не про­ис­хо­дит, по­про­буй­те за­пустить его вруч­ную:

/media/cd-name/autorun

Ес­ли поя­вит­ся ошиб­ка прав досту­па – зна­чит, диск был смон­ти­ро­ван с оп­ци­ей noexec, ко­то­рая в це­лях безо­пас­но­сти за­пре­ща­ет за­пуск лю­бых скрип­тов с дис­ка. Про­верь­те вы­вод ко­ман­ды

mount | grep sr0

при необ­хо­ди­мо­сти за­менив sr0 именем уст­рой­ст­ва сво­его DVD-при­во­да. Ес­ли в па­ра­мет­рах мон­ти­ро­вания есть noexec, скрипт ав­то­за­пуска не за­пустит­ся. Его мож­но за­пустить вруч­ную по­сле мон­ти­ро­вания дис­ка ко­ман­дой

sh /media/cd-name/autorun

Ко­ман­да, ко­то­рой мы здесь поль­зу­ем­ся – sh, это ин­тер­пре­та­тор обо­лоч­ки. Файл ав­то­за­пуска – про­сто файл с дан­ны­ми, ко­то­рые счи­ты­ва­ют­ся sh, хо­тя ес­ли за­пустить скрипт ав­то­за­пуска на­пря­мую, ре­зуль­тат бу­дет та­ким же. Скрип­ты авто­за­пуска в Linux обыч­но про­сто от­кры­ва­ют web-брау­зер, в основ­ном по­то­му, что воз­ла­гать на эти скрип­ты боль­шие за­да­чи, когда в боль­шин­ст­ве ди­ст­ри­бу­ти­вов они не за­пуска­ют­ся – пустая тра­та вре­мени. Ес­ли в Lucid дис­ки рань­ше за­пуска­лись ав­то­ма­ти­че­­ски, в этом был по­тен­ци­аль­ный риск, и дан­ная про­бле­ма ис­прав­ле­на об­нов­лением.

До­лой празд­ный Idle

B Я осваи­ваю Python. Так как я пи­шу код в Idle, при экс­пе­ри­мен­тах с раз­лич­ны­ми фраг­мен­та­ми ко­да про­грам­ма тут же ото­бра­жа­ет ре­зуль­та­ты, но при этом за­ви­са­ет. Как за­вер­шить про­грам­му? И по­те­рял ли я код двух-трех­ча­со­вой раз­ра­бот­ки, ко­то­рый, как я ду­мал, я соз­дал?

Apthunt, с фо­ру­мов

О Вы­пол­няю­щий­ся скрипт обыч­но мож­но за­вер­шить на­жа­ти­ем Ctrl + C, хо­тя иногда мо­жет по­тре­бо­вать­ся на­жать эти кла­ви­ши несколь­ко раз и немно­го по­до­ж­дать. Ес­ли Вы знае­те иден­ти­фи­ка­тор про­цес­са (PID), так же мож­но за­вер­шить и лю­бую про­грам­му. Для мно­гих про­грамм не по­тре­бу­ет­ся да­же это­го. Ко­ман­да

killall programname

от­пра­вит эк­ви­ва­лент Ctrl + C (сиг­нал, из­вест­ный как SIGTERM) ука­зан­ной про­грам­ме, но Idle – это скрипт на Python, и по­это­му Вам нуж­но за­вер­шить про­цесс Python. При этом так­же за­вер­шат­ся все про­грам­мы Python, за­пу­щен­ные на ком­пь­ю­те­ре.
(thumbnail)
Среда разработки Idle для Python упрощает эксперименты, но будьте готовы завершить ее, если ваш код вызвал ее зависание.

Иден­ти­фи­ка­тор лю­бо­го вы­пол­няю­ще­го­ся про­цес­са мож­но оп­ре­де­лить ко­ман­дой pgrep. По умол­чанию она ищет толь­ко сре­ди команд, как и killall, но мож­но за­ста­вить ее ис­кать по пол­ной стро­ке за­пуска ка­ж­до­го про­цес­са, вклю­чая ар­гу­мен­ты:

pgrep -fl idle

За­пуск этой ко­ман­ды с за­пу­щен­ным Idle да­ет сле­дую­щий ре­зуль­тат

22263 /usr/bin/python2.7 /usr/bin/idle

22265 /usr/bin/python2.7 -c __import__(‘idlelib.run’).run.main(True) 35200

Сле­до­ва­тель­но, иден­ти­фи­ка­тор про­цес­са в дан­ном слу­чае ра­вен 22263, и за­вер­шить его мож­но ко­ман­дой

kill 22263

Кла­ви­ши Ctrl + C и ко­ман­ды kill и killall от­прав­ля­ют про­грам­ме сиг­нал SIGTERM — это веж­ли­вая прось­ба к про­грам­ме при­брать­ся за со­бой и за­вер­шить­ся.

За­вис­шая про­грам­ма мо­жет не от­ве­тить на та­кую прось­бу; тогда от­правь­те бо­лее на­стой­чи­вое тре­бо­вание сиг­на­лом SIGKILL, од­ной из сле­дую­щих команд:

kill -SIGKILL <PID>

kill -SKILL <PID>

kill -9 <PID>

В Idle есть оп­ция со­хранения про­ек­та пе­ред за­кры­ти­ем, и ею нуж­но восполь­зо­вать­ся, ес­ли Вам жал­ко вре­мени, по­тра­чен­но­го на на­пи­сание ко­да, ко­то­рый под­ве­ши­ва­ет сис­те­му.

Об­нов­ления яд­ра

B У ме­ня Ubuntu 10.10 с ядром 2.6.35-31. По­че­му об­нов­ления яд­ра так дол­го уста­нав­ли­ва­ют­ся на бо­лее ста­рых вер­си­ях? Как уста­но­вить по­следнее яд­ро, на­при­мер, с ва­ше­го дис­ка, и по­лу­чать по­следние об­нов­ления для него? Еще во­прос: в бо­лее ранних вер­си­ях яд­ра объ­ем па­мя­ти ото­бра­жал­ся как 4 ГБ, а те­перь он ра­вен все­го 3 ГБ.

Алан Бак­ли [Alan Buckley]


О Как и со мно­ги­ми дру­ги­ми ди­ст­ри­бу­ти­ва­ми, по­сле то­го, как Ва­ша вер­сия Ubuntu станет не са­мой све­жей, Вы не по­лу­чи­те осо­бен­ных об­нов­лений. Про­вер­ка всех об­нов­лений для всех ре­ли­зов вле­чет боль­шие тру­до­за­тра­ты, по­это­му обыч­но в ка­ж­дом но­вом ре­ли­зе со­би­ра­ет­ся са­мое све­жее ПО, а для пре­ды­ду­щих ре­ли­зов вы­пол­ня­ют­ся об­нов­ления безо­пас­но­сти. Это ва­ри­ант под­хо­да «не сло­ма­лось – не чини».

Вы уста­но­ви­ли 10.10, и это стан­дарт­ная вер­сия яд­ра и дру­го­го ПО, по­став­ляе­мо­го с ней. По мыс­ли раз­ра­бот­чи­ков, ес­ли Вам нуж­но бо­лее позднее ПО, лучше уста­но­ви­ть бо­лее позд­нюю вер­сию ди­ст­ри­бу­ти­ва, по­это­му об­нов­ления на дан­ный мо­мент пре­иму­ще­ст­вен­но от­но­сят­ся к безо­пас­но­сти. Ес­ли Вам нуж­на бо­лее позд­няя вер­сия яд­ра, мо­же­те ском­пи­ли­ро­вать его из ис­ходников, но при унифи­ци­ро­ван­ном ис­ходнике с kernel.org вам бу­дет не восполь­зо­вать­ся спе­ци­аль­ны­ми за­пла­та­ми от Ubuntu, а это мо­жет стать про­бле­мой (хо­тя мо­жет и не стать). Пре­ж­де чем при­нять ре­шение, спро­си­те се­бя: есть ли в бо­лее поздних ре­ли­зах то, что Вам нуж­но?

Впрочем, Вы мо­же­те по­про­бо­вать это чис­то ра­ди экс­пе­ри­мен­та. Вам по­на­до­бит­ся ко­пия фай­ла яд­ра – она находится в /usr/src/linuxheaders- VERSION. Рас­па­куй­те ар­хив яд­ра в /usr/src, ско­пи­руй­те ту­да файл на­строй­ки и соз­дай­те сим­во­ли­че­скую ссыл­ку с это­го ка­та­ло­га на Linux.

cd /usr/src

sudo tar xf /media/LXFDVD155/Essentials/Kernel/linux-3.1.6.tar.bz2

sudo ln -s linux-3.1.6 linux

sudo cp linux-headers-VERSION/.config linux

cd linux

sudo make oldconfig

По­след­няя ко­ман­да пы­та­ет­ся при­менить ста­рую кон­фи­гу­ра­цию к но­во­му яд­ру, за­пра­ши­вая у Вас зна­чения но­вых или из­менив­ших­ся па­ра­мет­ров. При со­мнении в зна­чении па­ра­мет­ра, на­жми­те ? для про­смот­ра справ­ки. Ес­ли Вы все еще не уве­ре­ны, которое выбрать, возьми­те зна­чение по умол­чанию.

Боль­шин­ст­во но­вых па­ра­мет­ров от­ве­ча­ют за под­держ­ку но­вых уст­ройств, ко­то­рая Вам не нуж­на, ес­ли все уст­рой­ст­ва ла­дят с те­ку­щим ядром (от­сю­да вы­те­ка­ет во­прос, сто­ит ли Вам во­об­ще об­нов­лять яд­ро).

Один из па­ра­мет­ров, под­ле­жа­щих про­вер­ке – CONFIG_HIGHMEM: его некор­рект­ное зна­чение вы­зы­ва­ет Ва­шу про­бле­му с 3 ГБ. Сле­дую­щие ко­ман­ды ком­пи­ли­ру­ют все: уста­нав­ли­ва­ют мо­ду­ли в /lib/modules, уста­нав­ли­ва­ют но­вое яд­ро в /boot и до­бав­ля­ют но­вое яд­ро в ме­ню за­груз­ки

sudo make all

sudo make modules_install

sudo make install

sudo update-grub

Те­перь мож­но пе­ре­за­гру­зить­ся и вы­брать в ме­ню но­вое яд­ро. Ес­ли оно не за­гру­жа­ет­ся, за­пи­ши­те все со­об­щения об ошиб­ках и вы­бе­ри­те пре­ды­ду­щее яд­ро из ме­ню. Та­ким об­ра­зом, у Вас оста­ет­ся ра­бо­чая сис­те­ма, в ко­то­рой мож­но по­ис­кать при­чи­ны оши­бок. Дан­ный под­ход вы­во­дит яд­ро из-под кон­тро­ля менед­же­ра па­ке­тов, по­это­му при вы­хо­де но­во­го яд­ра Вам уже не пред­ло­жат об­но­вить­ся. Про­сто сле­ди­те за но­во­стя­ми о све­жих ре­ли­зах на сай­те kernel.org.

Это так­же вы­во­дит на­строй­ки яд­ра из-под кон­тро­ля Ubuntu, и от­вет­ст­вен­ность за них ло­жит­ся на Вас. При­ме­ня­ет­ся стан­дарт­ная га­ран­тия на сво­бод­ное ПО: Вы сло­ма­ли, Вам и чи­нить.



Персональные инструменты
купить
подписаться
Яндекс.Метрика