Category: техника

Category was added automatically. Read all entries about "техника".

опять про память

случайно наткнулся в гугле на топик про использование видеопамяти в качестве блочного устройства. камрады из Fujitsu-Siemens почему-то не подумали что 64 мб многовато для "просто так", вполне достаточно и 32х. о чем это я? а, о кривых дровах от ATI. Кривые дрова от ATI марки 8.29.6 при указании видеокарте 32х мегабайт параметром VideoRam 32768 не позволяют иксам фунициклировать. Черный экран, никакой реакции. Только Alt-PrtScr. Ну и хуй с ними, недавно при просмотре htop'a (см. пост ниже ;)) я заметил что памяти у меня свободной много, а еще что всего система знает о 440 мб. Путем нехитрых рассчетов было получено, что 8 мб заховал Ктулху. Не труъ сказал я, и решил завести блочный девайс на этих лишних метрах. Для этого мне понадобилось включить в Device Drivers->Memory technology device (MTD) -> Caching block device access to MTD devices; Readonly block device access to MTD devices на всякий случай. И в подразделе Self-contained MTD device drivers ---> Physical system RAM и пересобрать ядро. Так как никакой документации в каталоге Documentation по phram обнаружено не было я посмотрел его исходник. (modinfo phram не очень рулит потому как не совсем ясно, что имеется ввиду под
parm: phram:Memory region to map. "map=,,"
Тем более, что тут закралась опечатка. Вместо map читай phram.
На моё счастье афтары модуля, педантичные немцы, оказались камрадами адекватными и сразу же в начале файла описали весь Usage доступно простому юзеру типа меня :) Т.е. делать надо так:
modprobe phram phram=,, ; где name - имя. Хрен его знает где используется :) start - начальный адрес в памяти, можно указать в Miгабайтах,Kiлобайтах и прочих Giгабайтах. Для эстетов можно и в байтах. len - собственно размер области памяти для использования устройством, в тех же единицах. Есть и пример:
Example:
phram=swap,64Mi,128Mi phram=test,900Mi,1Mi
Создаем два устройства одно с именем test начиная с 64 мб размером 128 мб, второе соответственно test, с 900мб, размером 1 мегабайт. Отлично, у меня 440 мб, и свободно 8 мб, пишу:
sudo modprobe phram phram=test,504Mi,8Mi
$ cat /proc/mtd
dev: size erasesize name
mtd0: 00800000 00001000 "test"
отлично.
Теперь нужно сделать из этого блочный девайс для использования под ФС. Для этого простой команды
sudo modprobe mtdblock
достаточно.
Видим:
$ ls /dev|grep mtd
mtdblock0
значит операция прошла успешно. Теперь можем делать с устройством то же что и с обычным хард-диском.
Я сделал
$ mkfs.ext2 /dev/mtdblock0
$ mount /dev/mtdblock0 /mnt
$ df -h|grep mtd
/dev/mtdblock0 7,8M 45K 7,4M 1% /mnt