LINUX.ORG.RU

Сообщения Architector120

 

Делаю одноплатный компьютер из WIFI-Роутера.. Нужна помощь с Драйвером «atyfb»

Так... Для начала немного предыстории...

Думаю здесь уже многие наверно 'слышали' про такую штуку как «raspberry pi 4 compute module + io board» который вышел пару месяцев назад. (Если нет вкратце объясню... это одноплатный компьютер на ARM процессоре в последнюю модификацию которого была добавлена поддержка PCIe x1).

Так-вот сейчас youtube переполнен роликам в которых народ тычет е PCIe x1 слот на этом компьютере всякую хрень. По типу: Звуковые карты, карты видео захвата, raid -контроллеры, nvme ссд-шки, видеокарты... короче все что можно засунуть, уже туда суют! И как вы думайте что из того списка мозолит больше всего глаза ютуберов? Если кто-то подумал о видеокартах...То поздравляю.. вы угадали! честно говоря я сам не совсем понимаю зачем пихать в одноплатный компьютер GTX1650... но сам факт того что  целая куча народа пытается заставить грёбаною видеокарту работать на ARM процессоре заставил меня задуматься... Неужели это так сложно? немного подумав.. мне захотелось тоже попробовать... И я решил купить этот «raspberry pi 4 compute module + io board» но как оказалось его в наличии нигде нет... Становись в очередь и жди 3 месяца или покупай у перекупщиков на ebay в 2 раза дороже... Мдя... Не мой вариант!...

И тут моему взору пал старенький роутер Asus WL-500g... и сразу-же вспомнилось, что там стоит WIFI в MiniPCI слоте... Ну тут вы уже наверное поняли к чему я клоню... Моя больная фантазия увидела в этом, и так уже измученном жизнью роутере видеокарту =) Я уже ранее ему сделал 2 модификации...1я - увеличил объем оперативной памяти с 32Мб до 128Мб (перепаял 2 чипа), 2я - Установил туда debian 7 на ядре от openwrt. Ну думаю настало время 3-тий завершающий модификации по добавлению видеокарты, звуковой карты, клавы и мыши... И воля вот вам одноплатный компьютер на MIPS процессоре =) Думаю ресурсов должно хватить для запуска рабочего стола, doom и эмулятора денди =)

В общем задачу я себе поставил подключить к роутеру видеокарту! ПРИСТУПАЮ!... 1-вым делом начал искать видеокарту для слота miniPCI... нашел одну... MS-9513 ATI Rage XL 8Mb... даже не знал что такое существует... Но к сожалению в продаже я её, нигде не нашел... но зато нашел информацию о том что этот чип должен работать на mips процессорах а это важно в моём случае! Раз уж я не могу приобрести эту карточку то в голову приходит вариант номер 2 переходник miniPCI to PCI и их тоже как назло в продаже нет! (Китайцы где же вы, когда вы так нужны?...) В общем так как я с электроникой на ты! Я решил сделать переходник самостоятельно... всего то нужно было прочитать страниц 40 pci документации и нарисовать в CAD программе переходник... За 2 дня не сильного напряга нарисовал переходник и заказал его на производстве печатных плат у китайцев.... Жду 2 недели... Но не расслабляюсь так как мне еще нужно найти видеокарту ATI Rage XL 8Mb для обыкновенного PCI слота но с ключом на 3.3в что скажу вам не так-то уж и просто так-как практически все карточки 5 вольтовые... Хоть это не составило большого труда.. нашёл её на ближайшей компьютерной барахолке.. за 7$.. Спустя неделю ко мне таки пришли платы «Фотка-1» от китайцев... Спаял одну засунул в роутер «Фотка-2» и воткнул в неё для начала сетевую плату, её не жалко спалить если я где то накосячил с разводкой платы.... Заработало с первого раза! даже модуль ядра подхватило что меня довольно сильно удивило...

Ладно приступаю ко второму этапу сую туда видеокарту «Фотка-3» и запускаю... Плату на шине pci видит! Ура! но картинки нет =( собственно ожыдаеммо модуля ядра веть тоже нет... пересобрал ядро добавил поддержку графики и драйвера atyfb и mach64... Залил в роутер и что вы думайте? Кирпич! Все-таки это не так то и просто заставить из коробки работать видюху на другой архитектуре процессора как минимум из за отсутствия bios который читает rom видюхи и инициализирует регистры в самой видеокарте для работы в так называемом режиме video_bios....

Собственно на этом этапе я и застрял и уже сижу две недели  Кое как настроил earlyprintk и и наконец то получил Kernel Panic который openwrt от меня дня 4 прятал...

CFE version 1.0.37 for BCM947XX (32bit,SP,LE)
Build Date: ▒| 10▒▒ 12 22:21:19 CST 2006 (root@localhost.localdomain)
Copyright (C) 2000,2001,2002,2003 Broadcom Corporation.

Initializing Arena
Initializing Devices.
et0: Broadcom BCM47xx 10/100 Mbps Ethernet Controller 3.90.7.0
rndis0: Broadcom USB RNDIS Network Adapter (P-t-P)
CPU type 0x29006: 264MHz
Total memory: 134217728 KBytes

Total memory used by CFE:  0x80800000 - 0x8089AF40 (634688)
Initialized Data:          0x808313D0 - 0x80833790 (9152)
BSS Area:                  0x80833790 - 0x80834F40 (6064)
Local Heap:                0x80834F40 - 0x80898F40 (409600)
Stack Area:                0x80898F40 - 0x8089AF40 (8192)
Text (code) segment:       0x80800000 - 0x808313D0 (201680)
Boot area (physical):      0x0089B000 - 0x008DB000
Relocation Factor:         I:00000000 - D:00000000

Device eth0:  hwaddr 00-1B-FC-E2-9F-10, ipaddr 192.168.1.200, mask 255.255.255.0
        gateway not set, nameserver not set
Null Rescue Flag.
Reading :: TFTP Server.
Failed.: Timeout occured
Loader:raw Filesys:raw Dev:flash0.os File: Options:(null)
Loading: .. 3712 bytes read
Entry at 0x80001000
Closing network.
Starting program at 0x80001000
[    0.000000] Linux version 3.18.109 (openwrt@debian) (gcc version 4.8.3 (OpenWrt/Linaro GCC 4.8-2014.04 r49632) ) #5 Fri Dec 18 20:38:41 EET 2020
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00029006 (Broadcom BMIPS3300)
[    0.000000] bcm47xx: Using ssb bus
[    0.000000] ssb: Found chip with id 0x4704, rev 0x09 and package 0x00
[    0.000000] Unsupported SPROM revision 0 detected. Will extract v1
[    0.000000] ssb: Sonics Silicon Backplane found at address 0x18000000
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 08000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x00000000-0x07ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00000000-0x07ffffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x07ffffff]
[    0.000000] Primary instruction cache 16kB, VIPT, 2-way, linesize 16 bytes.
[    0.000000] Primary data cache 16kB, 2-way, VIPT, cache aliases, linesize 16 bytes
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
[    0.000000] Kernel command line:  earlyprintk noinitrd console=ttyS0,115200
[    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
[    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Memory: 125892K/131072K available (2829K kernel code, 126K rwdata, 560K rodata, 184K init, 282K bss, 5180K reserved, 0K cma-reserved)
[    0.000000] NR_IRQS:128
[    0.000000] MIPS: machine is Asus WL500GP V1
[    0.000000] Console: colour dummy device 80x25
[    0.000000] Calibrating delay loop... 262.96 BogoMIPS (lpj=1314816)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.080000] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.090000] NET: Registered protocol family 16
[    0.300000] DMA-API: preallocated 65536 debug entries
[    0.300000] DMA-API: debugging enabled by kernel config
[    0.310000] Switched to clocksource MIPS
[    0.640000] PCI host bridge to bus 0000:00
[    0.650000] pci_bus 0000:00: root bus resource [mem 0x40000000-0x7fffffff]
[    0.650000] pci_bus 0000:00: root bus resource [io  0x0100-0x07ff]
[    0.660000] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    0.670000] ssb: PCI: Fixing up bridge 0000:00:00.0
[    0.670000] ssb: PCI: Fixing up device 0000:00:00.0
[    0.680000] ssb: PCI: Fixing latency timer of device 0000:00:00.0 to 168
[    0.690000] pci 0000:00:02.0: BAR 0: assigned [mem 0x40000000-0x40ffffff]
[    0.700000] pci 0000:00:02.0: BAR 6: assigned [mem 0x41000000-0x4101ffff pref]
[    0.710000] pci 0000:00:02.0: BAR 2: assigned [mem 0x41020000-0x41020fff]
[    0.710000] pci 0000:00:02.0: BAR 1: assigned [io  0x0400-0x04ff]
[    0.720000] pci 0000:00:03.2: BAR 0: assigned [mem 0x41021000-0x410210ff]
[    0.720000] pci 0000:00:03.0: BAR 4: no space for [io  size 0x0020]
[    0.730000] pci 0000:00:03.0: BAR 4: failed to assign [io  size 0x0020]
[    0.740000] pci 0000:00:03.1: BAR 4: no space for [io  size 0x0020]
[    0.740000] pci 0000:00:03.1: BAR 4: failed to assign [io  size 0x0020]
[    0.760000] NET: Registered protocol family 2
[    0.760000] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[    0.770000] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[    0.780000] TCP: Hash tables configured (established 1024 bind 1024)
[    0.780000] TCP: reno registered
[    0.790000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.790000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.800000] NET: Registered protocol family 1
[    0.870000] futex hash table entries: 256 (order: -1, 3072 bytes)
[    0.880000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.890000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.900000] msgmni has been set to 245
[    0.900000] io scheduler noop registered
[    0.910000] io scheduler deadline registered (default)
[    0.910000] PCI: Enabling device 0000:00:02.0 (0080 -> 0083)
[    0.920000] ssb: PCI: Fixing up device 0000:00:02.0
[    0.920000] atyfb: using auxiliary register aperture
[    0.930000] atyfb: 3D RAGE XL (Mach64 GR, PCI-33) [0x4752 rev 0x27]
[    0.940000] atyfb: 512K SGRAM (1:1), 14.31818 MHz XTAL, 230 MHz PLL, 83 Mhz MCLK, 63 MHz XCLK
[    0.940000] atyfb: Unsupported xclk source:  5.
[    0.950000] Data bus error, epc == 80193240, ra == 801931fc
[    0.950000] Oops[#1]:
[    0.950000] CPU: 0 PID: 1 Comm: swapper Not tainted 3.18.109 #5
[    0.950000] task: 8781c9b8 ti: 8781e000 task.ti: 8781e000
[    0.950000] $ 0   : 00000000 10008800 c004a400 00800000
[    0.950000] $ 4   : 00000064 00000000 86d522e8 0000096d
[    0.950000] $ 8   : 0000002e 73206b6c 6372756f 20203a65
[    0.950000] $12   : 64657472 0000000e 00000000 6c637820
[    0.950000] $16   : 86d522e8 86d52000 80364290 8031d358
[    0.950000] $20   : 86d52778 40000000 80360000 41020000
[    0.950000] $24   : 00000002 00000000
[    0.950000] $28   : 8781e000 8781fbf0 80320000 801931fc
[    0.950000] Hi    : 00000000
[    0.950000] Lo    : 0009fe98
[    0.950000] epc   : 80193240 aty_init+0x630/0x9b0
[    0.950000]     Not tainted
[    0.950000] ra    : 801931fc aty_init+0x5ec/0x9b0
[    0.950000] Status: 10008803 KERNEL EXL IE
[    0.950000] Cause : 0080001c
[    0.950000] PrId  : 00029006 (Broadcom BMIPS3300)
[    0.950000] Modules linked in:
[    0.950000] Process swapper (pid: 1, threadinfo=8781e000, task=8781c9b8, tls=00000000)
[    0.950000] Stack : 0000005a 00000200 0000004b 80364290 8031d358 000000e6 00000053 0000003f
          00000400 800484d0 00000006 00000001 00000000 00000000 00000093 00000000
          00000037 00000006 803b68b2 00000006 10008801 00000037 00000000 00000000
          00000000 800491b4 00000000 00000006 00000006 003fffff 00000000 00000000
          00000000 00000000 803b68b2 00000037 00000000 8008b77c 00000001 000000d0
          ...
[    0.950000] Call Trace:
[    0.950000] [<80193240>] aty_init+0x630/0x9b0
[    0.950000] [<80193854>] atyfb_pci_probe+0x294/0x5b0
[    0.950000] [<8016edb8>] pci_device_probe+0x68/0xd0
[    0.950000] [<801c1958>] driver_probe_device+0xcc/0x218
[    0.950000] [<801c1b84>] __driver_attach+0x7c/0xb4
[    0.950000] [<801bfea0>] bus_for_each_dev+0x98/0xa8
[    0.950000] [<801c108c>] bus_add_driver+0x104/0x1ec
[    0.950000] [<801c2050>] driver_register+0xac/0x100
[    0.950000] [<80382748>] atyfb_init+0x60/0x314
[    0.950000] [<8000a4f8>] do_one_initcall+0x148/0x204
[    0.950000] [<80372cd4>] kernel_init_freeable+0x150/0x208
[    0.950000] [<80005f0c>] kernel_init+0x10/0x114
[    0.950000] [<800014a8>] ret_from_kernel_thread+0x14/0x1c
[    0.950000]
[    0.950000]
Code: 10400006  3c028036  8e020348 <8c4300a0> 34630010  ac4300a0  3c028036  244242c8  ae2202b0
[    1.160000] ---[ end trace 012648158a1832d7 ]---
[    1.170000] Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
[    1.170000]
[    1.170000] Rebooting in 100 seconds..
Как оказалось проблема с отсутствием информация о режимах работы видеокарты... И тут я торчу уже неделю,... пытаясь подобрать режим... пробовал разные методы: Добавлял в boot params video=atyfb:pll:235,mclk:80,xclk:63 частоты которые я взял с простого компьютера установив туда эту карточку. А так же пробовал писать непосредственно в регистры видеокарты... безрезультатно.. Но где-то в один прекрасный момент после 300тый перезагрузки устройства я наконец то получил ошибку на мониторе «Фотка-4»!!! Уря!!! Но счастье продлилось не долго после того как я передернул питание картинка больше не появлялась...

Так а теперь к делу... Умный человек! который прочел моё повествование подскажи мне пожалуйста что я делаю не так? =) как исправить эту гребаною ошибку?

[    0.940000] atyfb: Unsupported xclk source:  5.
[    0.950000] Data bus error, epc == 80193240, ra == 801931fc
Я не программист и не не могу понять исходники драйвера для того чтобы определить то чего ему не хватает... судя по тому что я получил изображения сам того не понимая... методом тыка.. тут скорее всего нужно указать каких-то 2 параметра до которых сам я допереть не могу ...

 , , ,

Architector120
()

Возможна ли кросс-компиляция «Debian» из исходников?

Знаю что очень дурацкий вопрос)) но все-же спрошу... Возможна ли кросс-компиляция «Debian» из исходников? Я имею в виду не отдельные пакеты а весь Debian целиком из пакетов на debian-src-dvd с помощью какой нибудь утилиты! чтобы получить так называемый «Порт» Дебиана... а уже из нево с помощью debootstrap собирать файловою систему со всеми необходимыми пакетами.

Сразу дам ответ на вопрос... Зачем?...

Среди списка поддерживаемых архитектур debian нет той что мне нужна!

 ,

Architector120
()

Iptables - проброс порта через VPN сойденение в локальною сеть

Всем доброго времени суток! В общем... Появилась довольно странная и нестандартная задача ясного решения которой в интернете я не нашол... Есть локальная подсеть 10.0.190.0\24 в которой находится VM 10.0.190.235 у которой есть 2 дополнительных ip [.190.236, .190.237] и на которой установлен OpenConnect (аналог Cisco AnyConnect - короче VPN клиент) через него есть доступ к 3 серверам (10.1.2.25, 10.1.3.100, 10.1.3.110) по порту 3389(RDP). Задача состоит в том чтобы пробросить порты через клиентское VPN подключение в локальною подсеть 10.0.190.0\24 через машинку 10.0.190.235 таким образом, чтобы сервера (10.1.2.25, 10.1.3.100, 10.1.3.110) думали что все подключения исходят от выданного VPN сервером клиенту ip-адреса... щас попробую изобразить эту хрень схематически...

                VM:[enp0s3]   10.0.190.235:3389 |   |      [tun0]      | < 10.1.2.25:3389
10.0.190.0\24 >   :[enp0s3:0] 10.0.190.236:3389 |NAT| VPN - connection | < 10.1.3.100:3389
                  :[enp0s3:1] 10.0.190.237:3389 |   |   (dinamic ip)   | < 10.1.3.110:3389

 , ,

Architector120
()

Как сделать перенаправление трафика на другой IP

Доброго времени суток! В общем возникла необходимость перенаправить входящий WAN-TCP трафик на IP-адрес другого сервера в интернете... Как это сделать? я в iptables не очень силен.

Задача состоит в том, чтоб клиент с IP-адресом 82.191.xxx.xxx установил сессию с адресом 185.176.xxx.xxx:16555 но пакеты при этом в скрытою перенаправлялись на адрес другого сервера в интернете 46.162.xxx.xxx:16555 а ответ шёл сначала на 185.176.xxx.xxx:16555 а потом уже клиенту 82.191.xxx.xxx

 , , ,

Architector120
()

wget - загрузка нескольких файлов одновременно

Задача состоит в том чтоб загрузить из директории сайта много архивов размером в 1.44mb... так как файлов очень много хотелось бы качать не 1 файл за раз а скажем 15

На даный момент гружу так:
wget --no-check-certificate https://domain.com/archive/file-{10000..23040}.{zip,rar}

 ,

Architector120
()

Tx\Rx bandwidth limit на 2950-той Сиське "( . )( . )" ?

Прошу прощения) за нескромный вопрос)) но мне раньше не доводилось иметь длительные отношения с коммутаторами от Cisco =)) Как настроить ограничение пропускной способности (bandwidth limit) на конкретный порт ? К примеру порт Fa0/24 (Rx 128 kbps)(Tx 512 kbps)

 , , ,

Architector120
()

Linux на kindle 3

В общем на днях мне отдали дохлый kindle 3 после неудачной перепрошивки. И сказали мол если починишь твой =) Вот же блин бывает в жизни халява =) У устройства был мёртвый загрузчик (uboot) я определил это подключениям устройства через usb-ttl адаптер (rs232) к компьютеру После часа поиска в интернете я нашел образы разделов и залил их обратно в устройство и оно заработало ! но у меня уже есть электронная книга так что вторая мне не к чему. И я решил сделать из неё чтото вроде КПК-на linux А что ? характеристики вроде неплохие:

CPU Freescale i.MX35 532 MHz, ARM11
RAM 256mb
Storage 4gb
Display 600x800
Также есть звук и микрофон
И что самое интересное есть слот расширения mini pci-e в котором стоит 3g модем И в который можно установить что нибудь другое =)
Также присутствует клавиатура и rs232 что тоже немаловажно

На борту и так уже стоит linux ну какой то уж слишком урезанный в нем есть только лишь самое необходимое для работы операционной системы. ЭЭЭ НЕ так не пойдёт ! Мне нужен более полноценный дистрибутив! скажем debian ... хотя впрочем любой сойдет главное чтоб был соурс-код для кросс-компиляции и были пакеты которые мне нужны. Впрочем на худой конец можно и красного черта перекомпилить там с пакетами и соурс кодом проблем быть не должно. Вопрос лишь в том как скомпилировать дистрибутив на ARM архитектуру ? Мне раньше никогда не приходилось иметь дело с межплатформенной кросс-компиляцыяй =( Понятное дело что нужен toolchain но как им пользоватся я не знаю и нигде не могу найти более или мение понятную инструкцию. kernel conf я уже извлек из ядра устройства осталось только модернизировать его под свои нужды и скомпелить дистрибутив. Опять же вопрос как скомпилировать ядро используя toolchain под ARM архитектуру ?

 , , , ,

Architector120
()

Как в virtual host добавить другой веб-сервер из локальный сети ?

Вот столкнулся с такой проблемой есть сервер с Debian-ом а на нем стоит Apache, как в virtual host добавить другой сервер из локальный сети c IIS ? Cкажем чтоб при обращении по адресу site.com я попал на сервер с Debian-ом а при обращении по адресу sub.site.com я попал на сервер с IIS. Есть только один внешний ip и на нем 80-порт смотрит на сервер с Debian-ом.

 , , , ,

Architector120
()

RSS подписка на новые темы