Размер виртуальной памяти в Linux

абсолютно аналогичная ситуация произошла с платой eval от SiLabs -чип USB -UART CP2102 с нестандартным VID/PID:

lsusb

Bus 001 Device 002: ID 10c4:804c Cygnal Integrated Products, Inc.

проблема решена загрузкой модуля cp210x и отправкой VID/PID, как упоминалось ранее:

sudo modprobe cp210x

sudo -s

echo 10c4 804c > /sys/bus/usb-serial/drivers/cp210x/new_id

соответствующий 99 -файл cp210.rules для udev выглядит следующим образом:

ACTION=="add", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="804c", RUN+="/sbin/modprobe cp210x" RUN+="/bin/sh -c 'echo 10c4 804c > /sys/bus/usb-serial/drivers/cp210x/new_id'"

0
13.02.2020, 15:09
1 ответ

Доступное адресное пространство зависит от архитектуры. Одним из ограничений является объем адресного пространства, предоставляемого самой архитектурой. 64 -битные архитектуры обычно позволяют использовать 64 -битные указатели, а 32 -битные архитектуры позволяют использовать 32 -битные указатели. Объем адресного пространства может быть ограничен архитектурой за пределами этих ограничений, и архитектура также может налагать определенную структуру. Вдобавок ко всему, ядро ​​применяет собственные решения, и некоторые из них настраиваются.

На 32 -бит x86, возможны пять различных настроек :

  • по умолчанию выделяется 3 ГБ для пользовательского пространства и 1 ГБ для ядра, а также допускается почти 1 ГБ «низкой» физической памяти — разделение происходит по адресу 0xC0000000;
  • вариант разделения 3G/1G смещает разделение вниз, чтобы обеспечить полный 1 ГБ малой памяти — разделение происходит по адресу 0xB000000;
  • Разделение 2G/2G выделяет 2 ГБ пользовательскому пространству, 2 ГБ ядру и имеет два варианта, таких как разделение 3G/1G — разделение либо по адресу 0x8000000, либо по адресу 0x7800000;
  • Разделение 1G/3G выделяет 1 ГБ для пользовательского пространства, 3 ГБ для ядра — разделение происходит по адресу 0x4000000.

Для системы с 512 МБ ОЗУ следует использовать разделение 3G/1G по умолчанию; пользовательское пространство будет иметь 3 ГБ адресного пространства, а ядро ​​— 1 ГБ.

Для 64 -бит x86, возможны две разные настройки , позволяющие использовать адресное пространство 128 ТиБ или 64 ПиБ как для пользовательского пространства, так и для ядра.

Другие архитектуры имеют другие настройки.

3
28.04.2021, 23:23

Теги

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