Как получить определенный файл из исходного кода ядра?

Мне нужны два файла из исходного кода ядра Linux, которые я удалил по ошибке:

  1. Option.c
  2. usb-wwan.h

Я искал с помощью этих команд, но не нашел их:

find -name Option.c
find -name usb-wwan.h

Как я могу получить эти файлы? (У меня есть доступ к установочному диску Ubuntu 12.04.)

2
задан 16 August 2012 в 18:24

2 ответа

Примечание: Этот ответ наиболее конкретно касается более ранней версии вопроса. Этот ответ все еще правильный, но вопрос был сделан более общим, так что он больше не настаивает на получении файла напрямую от других пользователей.

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

0
ответ дан 16 August 2012 в 18:24

Получение исходных текстов Linux (для нижестоящего ядра Ubuntu)

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

В частности, если вы работаете в Ubuntu 12.04, и вы не знаете, как вы получили исходные коды ядра, или вы получили их, установив пакет, имя которого начинается с linux-source, вы можете вернуть любое удаленное файл путем полной переустановки пакета:

sudo rm -rf /usr/src/linux-source-3.2.0/linux-source-3.2.0
sudo apt-get update
sudo apt-get --reinstall install linux-source-3.2.0
cd /usr/src/linux-source-3.2.0
sudo tar xvjf linux-source-3.2.0.tar.bz2

(Обратите внимание, что преднамеренно linux-source-3.2.0 появляется дважды в первой команде, которая удаляет извлеченный вручную исходный каталог, если таковой имеется.)

[ 1129]
  • Возможно, вы также захотите установить пакет linux-source (без номера версии в названии), чтобы вы продолжали получать исходный код для новых ядер по мере их появления. Но переустановка linux-source указанным выше способом не заменит отсутствующие файлы, поскольку linux-source - это просто метапакет , который всегда зависит от самой последней версии [ 118] в вашем выпуске Ubuntu.
    • Поиск файлов по имени в исходных кодах ядра

      Теперь у вас должны быть пропущенные файлы, поэтому ищите их:

      find /usr/src/linux-source-3.2.0/linux-source-3.2.0 -iname Option.c -or -iname usb-wwan.h
      

      Обратите внимание, что я использовал -iname опция, которая выполняет сопоставление без учета регистра. (Option.c с большой буквы O является несколько маловероятным именем для исходного файла в источниках ядра Linux.)

      Вывод будет выглядеть так:

      /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/usb/serial/option.c
      /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/usb/serial/usb-wwan.h
      

      [ 1128] Обратите внимание, что эти файлы взяты из нижестоящего ядра Ubuntu , исправлены (т.е. модифицированы) специально для Ubuntu и его родительского дистрибутива, Debian . Смотрите эту страницу (особенно этот раздел ) для деталей. Это, вероятно, то, что вы хотите, потому что оно соответствует ядру, которое, вероятно, будет фактически установлено на вашем компьютере. Но в зависимости от ваших конкретных потребностей, вам может понадобиться другое ядро.

    0
    ответ дан 16 August 2012 в 18:24

    Другие вопросы по тегам:

    Похожие вопросы: