На самом деле это невозможно; LVM ничего не знает о файлах.
LVM создает логические тома, которые являются блочными устройствами. Они функционируют так же, как и другие блочные устройства, такие как жесткий диск, и поэтому не знают и не заботятся о том, что означают данные, хранящиеся на них. Для LVM, его всего лишь серия из 0 и 1, организованных в х-байтовые блоки.
Файловая система сохранена на этом блочном устройстве (логическом томе). Файловая система знает о файлах, но не экспортирует их на блочное устройство.
Точно так же, как вы не могли спросить свой жесткий диск, какие платы содержат файлы, вы не можете спросить LVM, какие PV содержат файлы.
[Вы можете, конечно, пройти через каждый файл в файловой системе, спросить файловую систему, которая блокирует его хранение, затем спросить LVM, где каждый из этих блоков, и сложить это все вместе, но я не знаю ни одного инструмента для этого. Я также не уверен, почему вы хотите сделать это.]
-121--175422- Мне неизвестны какие-либо ограничения размера для здесь-doc. Я запускаю kernel 3,9,1
и испытываю здесь ту же проблему: при вставке больших фрагментов текста в терминале некоторые строки усекаются или отсутствуют. Я узнал (после некоторого гуглинга), что если отключить редактирование строк, вставка работает нормально (обсуждение здесь: Вставка больших объемов текста в программы с поддержкой readline усекает части вставляемого текста ).
Дальнейшие исследования показывают, что корень этой проблемы на самом деле был ошибкой ядра ( drivers/tty
) и, по-видимому, он исправлен в ядрах > = 3,14 . Это, вероятно, объясняет, почему люди с более актуальными установками не смогли воспроизвести поведение, которое мы оба испытываем.
ОБНОВЛЕНИЕ:
Я могу подтвердить, что после установки kernel 3,16,6
все работает нормально, поэтому исправление ядра или обновление до более поздней версии ( > = 3,14
) должно устранить эту проблему.
Начиная с wiki архитектуры MIPS, она описывается как,
MIPS (первоначально аббревиатура для микропроцессора без блокировки Pipeline Stages) - сокращенный компьютер набора команд (RISC) набор инструкций (ISA), разработанный MIPS Technologies (ранее MIPS) Computer Systems, Inc.).
Из записи wiki x86-64 она описывается как,
x86-64 (также известная как x64, x86_64 и AMD64) является 64-разрядной версией набор команд x86.
Таким образом, согласно выводу arch
в вопросе, очевидно, что у меня есть машина x86 _ 64 и я пытаюсь создать код архитектуры MIPS после запуска компилятора gcc
.
Это аналогично пробованию дизельного автомобиля на бензиновом двигателе . Как бы мы ни старались, не подправив газовый двигатель, мы не смогли запустить дизельный автомобиль на бензиновом двигателе.
Описать его техническим способом , gcc
может создавать код сборки для большого количества архитектур, включая MIPS . Но какая архитектура предназначена для данного экземпляра gcc
, решается при компиляции самого gcc
. Предварительно скомпилированный двоичный файл, который вы найдете в системе Ubuntu, знает о x86 (возможно, как 32-разрядном, так и 64-разрядном режимах), но не о MIPS .
Снова цитирование из того же ответа , компиляция gcc
с целевой архитектурой, отличной от архитектуры, на которой будет выполняться gcc
, называется подготовкой цепочки инструментов для перекрестной компиляции. Или, говоря словами непрофессионала, этот инструментарий перекрестной компиляции похож на подгонку бензинового двигателя для запуска дизельного автомобиля .
Однако настройка инструментария для перекрестной компиляции - это довольно большая работа, поэтому вместо описания того, как это настроить, я опишу, как установить собственный компилятор MIPS в виртуальную машину MIPS. Это включает дополнительные шаги по настройке эмулятора для виртуальной машины и установке ОС в эту среду, но позволит использовать предварительно созданный собственный компилятор вместо компиляции перекрестного компилятора.
Сначала мы установим qemu
, чтобы наша система работала под управлением некоторых виртуальных операционных систем. Снова существует несколько подходов, таких как установка какой-то перекрестной скомпилированной цепочки инструментов, как обсуждалось здесь и с использованием buildroot , как предложено в ответе, который я ранее связал.
После загрузки мяча дегтя выполните следующие команды.
bzip2 -d qe *
tar -xvf qe *
./настроить
сделать
сделать установку
qemu
на компьютере я попробовал несколько методов
netboot для debian OS, как предложено в
здесь и
здесь . Но
к сожалению, я не смог выполнить установку debian OS
с помощью netboot, поскольку не были доступны правильные зеркала. Я получил образ для debian, который нацелен на архитектуру MIPS из
здесь и я
загрузил образ ядра
и qemu
и по вышеуказанной ссылке и выполнил следующие действия.
Я запустил qemu
, как показано ниже.
qemu-system-mips -M malta -kernel vmlinux-2.6.32-5-4kc-malta -hda
debian_squeeze_mips_standard.qcow2 -apend «root =/dev/sda1 console = tty0»
После появления системы debian я установил компилятор gcc
как
ниже.
обновление apt-get & & модернизация apt-get
apt-get установка build-essential
Теперь у меня есть прекрасно работающий собственный компилятор gcc
в виртуальной машине MIPS debian на qemu, который компилирует мою C-программу для MIPS специфического кода сборки.
Внутри моей машины Debian я только что поместил образец программы C hello world и сохранил его как hello.c
, как показано ниже.
#include<stdio.h>
int main()
{
printf("Hello World");
}
Чтобы создать код архитектуры MIPS для моей программы hello.c, я запустил программу C с помощью компилятора gcc
как,
gcc -O2 -S -c hello.c
Приведенная выше команда создала файл hello.s
, который создал мой код архитектуры MIPS .
.file 1 "hello.c"
.section .mdebug.abi32
.previous
.gnu_attribute 4, 1
.abicalls
.section .rodata.str1.4,"aMS",@progbits,1
.align 2
$LC0:
.ascii "Hello World\000"
.text
.align 2
.globl main
.set nomips16
.ent main
.type main, @function
main:
.frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0
.mask 0x00000000,0
.fmask 0x00000000,0
.set noreorder
.set nomacro
lui $28,%hi(__gnu_local_gp)
addiu $28,$28,%lo(__gnu_local_gp)
lui $4,%hi($LC0)
lw $25,%call16(printf)($28)
nop
jr $25
addiu $4,$4,%lo($LC0)
.set macro
.set reorder
.end main
.size main, .-main
.ident "GCC: (Debian 4.4.5-8) 4.4.5"
Но как узнать, является ли созданный выше код сборочным кодом MIPS ?
Выходные данные команды arch
определяют архитектуру машины. В моей машине Debian она производит выходные данные как mips
, и у меня также нет никаких binutils
или цепочек инструментов кросс-компилятора, установленных в машине.
Таким образом, созданный код сборки является специфичным для MIPS .
Вам нужен кросс-инструментарий, gcc (+binutils), который работает на x86_64, но выводит mips двоичные файлы.
Вы можете попробовать собрать его самостоятельно (например, google: build cross toolchain) или загрузить предварительно собранный (например, из Codesourcery)
Или вы можете собрать свой собственный с помощью какого-нибудь инструмента типа crosstool-ng
Также системы типа buildroot собирают (или загружают) свой собственный кросс-инструментарий (наверное, также OpenWRT).
после нескольких дней борьбы с ударом Ubuntu часто, наконец, сработало.
Ниже приведены шаги, которые я пытался выполнить. Пожалуйста, примите это за справку, так как есть большие шансы, что я, возможно, забыл написать некоторые шаги
....................................................................................................... Обзор проблемы: Попытка подключить ОС Linux к гарнитуре BT и установить sco-ссылку для воспроизведения музыки
Конфигурация UBuntu: Версия ядра: 3.0.0-32-generic Ubuntu Verion - > 11,10
Устройство тестирования: гарнитура JABRA EASY GO.. .............................................................................. 1) Установите версию Ubuntu выше. Эта версия Ubuntu не поддерживается, но поскольку мое внутреннее устройство использует почти ту же версию ядра, я придерживался этой версии.
2) Конфигурирование списка источников apt-get. Поскольку установленная версия не поддерживается, apt-get не будет работать. Для этого измените/etc/apt/sources.list. example- >
sudo sed -i -e 's/archive.ubuntu.com\| security.ubuntu.com/old-releases.ubuntu.com/g '/etc/apt/sources.list
sudo apt-get update & & sudo apt-get dist-upgrade 3) Я бы рекомендовал установить синаптик, а также установить пакеты и отсутствующие библиотеки.
4) Установите следующие пакеты -- >
bluez-hcidump
bluez-utils
libbluetooth1
libbluetooth1-dev
install automake-1.7 and autoconfig
cvs
5) Google для загрузки исходного кода btsco или
используйте следующую команду
cvs -d: pserver: anonymous@bluetooth-alsa.cvs.sourceforge.net :/cvsroot/bluetooth-alsa login cvs -d: pserver: anonymous@bluetooth-alsa.cvs.sourceforge.net :/cvsroot/bluetooth-alsa co btsco 6) ТЕПЕРЬ КОМПИЛЯЦИЯ И УСТАНОВКА
i) перейдите в каталог btsco
ii) ./Проблемы начальной загрузки: если ошибка/предупреждение: макрос «» AM _ PATH _ SDL «» не найден в библиотеке установки libbsdl1.2-dev
после прохождения начальной загрузки выполните configure ii) ./configure issues:
если bluetooth/bluetooth .h отсутствует - > install libbluetooth-dev требования к пакету dbus-1 > = не 0,36 соответствовать & dbus-glib не найден -- > установить libdbus-glib-1-dev iii) сделать
проблемы: ./libtool: line 841: X-tag = CXX: команда не найдена и много других ошибок, как это
Чтобы устранить эту ошибку: скачать libtool-1.5.24 tar ball. извлеките его, сконфигурируйте и сделайте. теперь снова сконфигурируйте btsco и скопируйте libtool, выполняемые из libtool dir в btsco.
iv) сделать установку v) сделать mainatiner-clean O/p: btsco построен успешно и вы можете найти его в/usr/local/bin.
7) Модуль Build Kernel
i) cd/usr/src/btsco/kernel
ii) создает
проблемы: я предполагаю, что вы получите огромный список ошибок. открыть btsco.cand обрабатывать каждую ошибку шаг за шагом
1 ошибка звук/driver.h не найден bla bla - > комментарий, что в файле btsco.c 2 комментарий # включить, так как это устарело 3) добавить
# включить < linux/smp.h > # include < linux/muxtex.h > 4) DEFINE_MUTEX (os_mutex);
5) snd_assert устарел, поэтому замените uit на if statement example
if (bt_sco->playback = NULL) {
} 6) заменить kill_proc (снова устаревший) функцией ниже 9, скопированной из сети.. tahnks тому парню) ссылка: http:/ /www.linuxquestions.org/questions/linux-kernel-70/is-there-any-kill_proc-replacement-for-proprietary-linux-kernel-drivers-4175460017/
int my_kill_proc (pid_t pid, int sig) {
int error = -ESRCH ;/* возвращаемое значение по умолчанию /
struct task_struct р;
struct task_struct * t = NULL;
struct pid * pspid;
rcu_read_lock ();
p = & init _ task ;/* начать в init /
сделать {
если (p- > pid = = pid) {/ соответствует pid (не tgid)? /
t = p;
разрыв;
}
p = next_task (p) ;/ «это не та задача, которую вы ищете» /
} пока (p! = & init _ task) ;/ остановимся, когда вернемся к init */
если (t! = NULL) {
pspid = t- > pids [PIDTYPE _ PID] .pid;
если (pspid! = NULL) ошибка = kill_pid (pspid, sig, 1);
}
rcu_read_unlock ();
ошибка возврата;
}
и тогда вместо kill_proc должно быть
my _ kill _ proc (bt_sco->thread_pid, SIGINT)
6) заменить% d на% lu для ошибки длинной int
7) заменить lock_kernal на mutex_lock (& os _ mutex) то же самое для разблокировки
надеюсь, что после этого
8) сделать установку 9) depmod -e 10 0 сделать чистым
11) modprobe snd_bt_sco
......................................
Теперь голосовой btsco
a) hciconfig hci0 0X0060
b) hcitool просмотр, которым управляют
получает mac_addre4ss JABRA
c)/usr/local/bin/btsco-r-v mac_addrees
, если получают ошибку?: управлять открытый (hw:1) тогда, Jabra не поддерживает sco, или ядерный модуль не загружен
, d) на другом терминале делают-> sudo hcidump-i hci0 sco, чтобы контролировать sco пакеты
e), как только связь Джабра установлена aplay-D plughw:Headset/home/my_home_dir/my_sample_fiile.wav
пробега -121--196453-У меня есть два eee pc 701: оригинальный с Xandros и оригинальный с Windows XP. Оба они в полном рабочем состоянии, хотя и страдают от юральных ОС, которые они используют. Недавно я начал играть с Puppy Linux. Я попробовал Slacko, Точный и, наконец, Lucid 5.2.8. Все они запускаются с USB Pen Drive. Все они работают без проблем. Я нахожу Lucid лучшим, как я нашел все ежедневные мягкие, что я использую: LibreOffice, Thunderbird, Firefox, Truecrypt (да, я все еще использую его ежедневно), вино и т.д. Любой вопрос с небольшим разрешением экрана. Система обнаруживает его автоматически и, почти все вещи, работает нормально. Так что нет необходимости искать какую-либо из старых специфических ОС, разработанных только для 701 (eeebuntu, Pupeee, Breeezy и т.д.). Ты просто используешь Lucid Puppy «как есть,» и все. У вас есть последние релизы упомянутого софт. Удивительно, если вы используете интегрированную системную информацию только для того, чтобы увидеть, что с ОС заряжается на ОЗУ, LibreOffice Writer, LibreOfffice Calc, Firefox и, возможно, другая программа работает, и вы просто используете около 300 МБ оперативной памяти. Таким образом, и несмотря на то, что есть другие небольшие ОС Linux, подходящие для этих маленьких машин, если вы используете Puppy, что я плавники специально подходит для неопытных пользователей Linux (Как я есть), вы все еще сможете запустить свои 701 в течение многих лет.Это действительно удовольствие иметь возможность использовать эти машины, даже лучше, что их первый рабочий день (с Xandros или XP).
-121--98372-Проект emdebian проделал определенную работу над перекрестными цепочками инструментов .
Поскольку эти пакеты довольно сильно страдают от загнивания, я хотел бы узнать о текущем состоянии проекта emdebian, либо через список рассылки, либо через IRC.